Skip to content

Instantly share code, notes, and snippets.

@chorn
Created June 15, 2011 14:23
Show Gist options
  • Save chorn/1027210 to your computer and use it in GitHub Desktop.
Save chorn/1027210 to your computer and use it in GitHub Desktop.
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
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment