
Untitled
By: a guest on
Apr 28th, 2012 | syntax:
None | size: 0.71 KB | hits: 12 | expires: Never
export _GNUDATE="date"
if [ "${OSTYPE:0:6}" = "darwin" ] && command -v gdate >/dev/null 2>/dev/null ; then
export _GNUDATE="gdate"
fi
date2stamp() {
$_GNUDATE --utc --date "$1" +%s
}
stamp2date() {
$_GNUDATE --utc --date "1970-01-01 $1 sec" "+%Y-%m-%d %T"
}
dateDiff() {
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esac
dte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))
if ((diffSec < 0)); then abs=-1; else abs=1; fi
echo $((diffSec/sec*abs))
}
date_range() {
range=$(dateDiff -d $1 $2)
for((i=0; i<=$range; i++)) ; do
$_GNUDATE --date "$1 $i day" +'%Y-%m-%d'
done
}