Skip to content

Instantly share code, notes, and snippets.

@TakashiUNUMA
Created May 22, 2013 10:05
Show Gist options
  • Save TakashiUNUMA/5626527 to your computer and use it in GitHub Desktop.
Save TakashiUNUMA/5626527 to your computer and use it in GitHub Desktop.
Change from 10 minute interval time to 3 hour interval time.
#!/bin/sh
#
# program of converting from 10-min. time to 3-hour time
#
# original script coded by Takashi Unuma, Kyoto Univ.
# Last modified: 2013/05/22
#
if test ${#1} -lt 12 ; then
echo "please type following format of date:"
echo " YYYYMMDDHHNN"
exit 1
fi
YMDHN=$1
yyyy=${YMDHN:0:4}
mm=${YMDHN:4:2}
dd=${YMDHN:6:2}
hh=${YMDHN:8:2}
nn=${YMDHN:10:2}
#echo "INPUT: ${hh}:${nn} ${mm}/${dd}/${yyyy}"
#echo "INPUT: ${yyyy}-${mm}-${dd}_${hh}:${nn}"
if test ${hh} -ge 0 -a ${hh} -le 1 ; then
echo "${yyyy}${mm}${dd}0000"
elif test ${hh} -ge 2 -a ${hh} -le 4 ; then
echo "${yyyy}${mm}${dd}0300"
elif test ${hh} -ge 5 -a ${hh} -le 7 ; then
echo "${yyyy}${mm}${dd}0600"
elif test ${hh} -ge 8 -a ${hh} -le 10 ; then
echo "${yyyy}${mm}${dd}0900"
elif test ${hh} -ge 11 -a ${hh} -le 13 ; then
echo "${yyyy}${mm}${dd}1200"
elif test ${hh} -ge 14 -a ${hh} -le 16 ; then
echo "${yyyy}${mm}${dd}1500"
elif test ${hh} -ge 17 -a ${hh} -le 19 ; then
echo "${yyyy}${mm}${dd}1800"
elif test ${hh} -ge 20 -a ${hh} -le 22 ; then
echo "${yyyy}${mm}${dd}2100"
elif test ${hh} -eq 23 ; then
_dd=$(expr ${dd} + 1)
if test ${mm} = "02" ; then
if test $(expr ${yyyy} % 4) -eq 0 ; then
if test ${_dd} -ge 30 ; then
_mm=$(expr ${mm} + 1)
_dd=1
else
_mm=$(expr ${mm} + 0)
_dd=$(expr ${_dd} + 0)
fi
elif test ${_dd} -ge 29 ; then
_mm=$(expr ${mm} + 1)
_dd=1
else
_mm=$(expr ${mm} + 0)
_dd=$(expr ${_dd} + 0)
fi
YYYY=${yyyy}
elif test ${mm} = "01" -o ${mm} = "03" -o ${mm} = "05" -o ${mm} = "07" -o ${mm} = "08" -o ${mm} = "10" -o ${mm} = "12" ; then
if test ${_dd} -ge 32 ; then
YYYY=${yyyy}
_mm=$(expr ${mm} + 1)
_dd=1
else
YYYY=${yyyy}
_mm=$(expr ${mm} + 0)
_dd=$(expr ${_dd} + 0)
fi
if test ${_mm} -ge 13 ; then
YYYY=$(expr ${yyyy} + 1)
_mm=1
_dd=1
else
YYYY=${yyyy}
fi
elif test ${mm} = "04" -o ${mm} = "06" -o ${mm} = "09" -o ${mm} = "11" ; then
if test ${_dd} -ge 31 ; then
_mm=$(expr ${mm} + 1)
_dd=1
else
_mm=$(expr ${mm} + 0)
_dd=$(expr ${_dd} + 0)
fi
YYYY=${yyyy}
else
echo "mm error"
fi
if test ${_mm} -lt 10 ; then
MM="0${_mm}"
else
MM="${_mm}"
fi
if test ${_dd} -lt 10 ; then
DD="0${_dd}"
else
DD="${_dd}"
fi
echo "${YYYY}${MM}${DD}0000"
else
echo "hh error"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment