#!/bin/bash

if [ $# -ne 2 ]
then
   echo $0: incr yyyymmddhh 1>&2
   exit 1
fi

#  Use 1-based indexing for months

cmon=("skip" "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" \
      "Nov" "Dec")

hincr=$1
len=$(echo $2 | awk '{print length}')
if [ $len -ne 10 ]
then
   echo $0: invalid format for date: must be yyyymmddhh 1>&2
   exit 1
fi

thedate=$(echo $2 |\
   awk '{print substr($1,1,4),substr($1,5,2)+0,substr($1,7,2),substr($1,9,2)}')

declare -a yyyymmddhh=($thedate)  #bash-ism
mm=$(echo ${yyyymmddhh[1]})
mm=${cmon[$mm]}
yy=${yyyymmddhh[0]}
dd=${yyyymmddhh[2]}
hh=${yyyymmddhh[3]}
wdate=$(date -d "$hincr hours ${hh}:00 $dd $mm $yy" +%Y%m%d%H)
errcode=$?
if [ $errcode -eq 0 ]
then
   echo $wdate
fi
exit $errcode
