Дата, узнать количество дней в месяце

Дата, узнать количество дней в месяце

Как я могу использоватьдатакоманда для определения количества дней в текущем и следующем месяце?

решение1

Метод грубой силы: сгенерировать следующие 31 и 62 дня и взять наибольшее число:

month=$(date +%m)
maxDayThisMonth=$(( for d in {00..31}; do date -d "+$d days" +%m-%d ; done ; ) | grep -Po "(?<=$month-)\d+" | sort -rn | head -1)

nextMonth=$(printf "%02d" $(( ($month+1) % 12 )) )
maxDayNextMonth=$(( for d in {01..62}; do date -d "+$d days" +%m-%d ; done ; ) | grep -Po "(?<=$nextMonth-)\d+" | sort -rn | head -1)

grep -Pэто GNU-изм, но поскольку это для Linux... В противном случае вы можете заменить его более традиционным grep+ cut.

Связанный контент