Я хочу сделать некоторые манипуляции с календарем в bash - в частности, я хочу выяснить последнюю дату данного месяца (включая високосный год, и подготовка таблицы для поиска не является для меня правильным решением).
Возможно, у меня есть следующий код:
$year=2009
$start_month=2
$end_month=10
for $month in $(seq $start_month $end_month); do
echo "Last date of "$(date +"%B" -d "${year}-${month}-01")" is: " ???
done
Я не могу понять, как сделать что-то подобное. Хотя я date -d
работал бы как POSIX mktime и сбрасывал недействительные даты в их действительные эквиваленты, поэтому я мог бы сказать что-то вроде date -d "2009-03-00"
и получить '2009-02-28', но такой удачи нет.
Есть ли способ сделать это, используя только то, что доступно на bash в стандартной среде GNU?