Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 28th, 2012  |  syntax: None  |  size: 0.71 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. export _GNUDATE="date"
  2. if [ "${OSTYPE:0:6}" = "darwin" ] && command -v gdate >/dev/null 2>/dev/null ; then
  3.   export _GNUDATE="gdate"
  4. fi
  5.  
  6. date2stamp() {
  7.   $_GNUDATE --utc --date "$1" +%s
  8. }
  9. stamp2date() {
  10.   $_GNUDATE --utc --date "1970-01-01 $1 sec" "+%Y-%m-%d %T"
  11. }
  12. dateDiff() {
  13.   case $1 in
  14.     -s)   sec=1;      shift;;
  15.     -m)   sec=60;     shift;;
  16.     -h)   sec=3600;   shift;;
  17.     -d)   sec=86400;  shift;;
  18.     *)    sec=86400;;
  19.   esac
  20.   dte1=$(date2stamp $1)
  21.   dte2=$(date2stamp $2)
  22.   diffSec=$((dte2-dte1))
  23.   if ((diffSec < 0)); then abs=-1; else abs=1; fi
  24.   echo $((diffSec/sec*abs))
  25. }
  26. date_range() {
  27.   range=$(dateDiff -d $1 $2)
  28.   for((i=0; i<=$range; i++)) ; do
  29.     $_GNUDATE --date "$1 $i day" +'%Y-%m-%d'
  30.   done
  31. }