Datum, ermitteln Sie die Anzahl der Tage in einem Monat

Datum, ermitteln Sie die Anzahl der Tage in einem Monat

Wie kann ich dieDatumBefehl, um die Anzahl der Tage im aktuellen und nächsten Monat herauszufinden?

Antwort1

Brute Force: Generieren Sie die nächsten 31 und 62 Tage und nehmen Sie die größte Zahl:

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 -Pist ein GNU-ismus, aber da dies für Linux ist … Andernfalls können Sie es durch ein konventionelleres grep+ ersetzen cut.

verwandte Informationen