Skip to content

Instantly share code, notes, and snippets.

@mrchoke
Created August 1, 2021 13:14
Show Gist options
  • Save mrchoke/6262e975a27a75bc675f3655b0a3152e to your computer and use it in GitHub Desktop.
Save mrchoke/6262e975a27a75bc675f3655b0a3152e to your computer and use it in GitHub Desktop.
Loop between two date bash macOS and Linux
#!/bin/bash
d=2020-12-01
t=2021-01-01
while [ "$d" != "$t" ]; do
echo $d
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
printf '=%.0s' {1..25}
echo
echo "Y-m-d: " $(date -d $d +"%Y-%m-%d")
echo " Y-m: " $(date -d $d +"%Y-%m")
echo " Y: " $(date -d $d +"%Y")
echo " m: " $(date -d $d +"%m")
echo " d: " $(date -d $d +"%d")
printf '=%.0s' {1..25}
echo
d=$(date -I -d "$d + 1 day")
elif [[ "$OSTYPE" == "darwin"* ]]; then
printf '=%.0s' {1..25}
echo
echo "Y-m-d: " $(date -jf "%Y-%m-%d" $d +%Y-%m-%d)
echo " Y-m: " $(date -jf "%Y-%m-%d" $d +%Y-%m)
echo " Y: " $(date -jf "%Y-%m-%d" $d +%Y)
echo " m: " $(date -jf "%Y-%m-%d" $d +%m)
echo " d: " $(date -jf "%Y-%m-%d" $d +%d)
printf '=%.0s' {1..25}
echo
d=$(date -j -v +1d -f "%Y-%m-%d" $d +%Y-%m-%d)
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment