Test, ob ein bestimmtes Jahr ein Schaltjahr ist oder nicht

Hallo zusammen,

ich habe auf einem Linux-Rechner ein Script, welches ich gerne auf FreeBSD übertragen möchte.

In diesem Script soll geprüft werden, ob es sich bei einem bestimmten Jahr um ein Schaltjahr handelt.
Dabei greife ich auf das Kommando date zurück: Ich übergebe den 29.02. sowie das Jahr und prüfe den Rückgabewert.
Das funktioniert ohne Probleme:
Code:
# date --date=20200229 > /dev/null
# echo $?
0

# date --date=20190229 > /dev/null
# echo $?
1

Leider funktioniert diese Variante unter FreeBSD nicht, weil es hier den Parameter --date nicht gibt.
Meine erste Idee: Ich kann den Parameter -j nutzen:
Code:
# date -j 202002290000
Sat Feb 29 00:00:00 CET 2020
# echo $?
0

# date -j 201902290000
Fri Mar  1 00:00:00 CET 2019
# echo $?
0

Im letzten Fall wird der nicht-existierende 29.02. einfach auf den 01.03. gesetzt...

Kennt Ihr ein Programm, mit dem ich einfach prüfen kann, ob der 29.02. eines Jahres ein Schaltjahr ist?

Danke und Gruß
 
Code:
$ YEAR=2019
$ echo $((YEAR % 4 != 0 || (YEAR % 100 == 0 && YEAR % 400 != 0)))
1
 
Du könntest auch die gnu-binutils installieren, dann hast du mit gdate ein date was sich wie das unter linux verhält.
 
Zurück
Oben