# Looping Dates macOS

date on MacOS does not support --date, so a workaround is needed. Converting Date to unix epoch, adding one day in epoch and converting back.

## The Scripty Way

Taken from a blog post

#!/bin/zsh

start=$year-01-01 end=$year-12-31
currentDateTs=$(date -j -f "%Y-%m-%d"$start "+%s")
endDateTs=$(date -j -f "%Y-%m-%d"$end "+%s")
offset=86400

while [ "$currentDateTs" -le "$endDateTs" ]
do
date=$(date -j -f "%s"$currentDateTs "+%Y-%m-%d")
echo $date currentDateTs=$(($currentDateTs+$offset))
done


## The Brew Way

As I found out long after writing the above you can simply brew install coreutils and get a date command with the --date option. The only thing to note there is this: Commands also provided by macOS have been installed with the prefix "g".

So the proper date command can now be accessed as gdate.