Kalenderwoche
Ich habe immer häufiger Absprachen, bei denen es darum geht, einen Termin in einer bestimmten Kalenderwoche (KW) zu finden oder etwas für eine KW zu planen.
Das Jahr umfasst 52 Kalenderwochen und in der EU gilt davon diejenige als erste, die den ersten Donnerstag im Jahr enthält, also mindesten vier Tage weil die Woche hier am Montag beginnt.
Mein Problem damit: kaum einer meiner Kalender zeigt mir die Kalenderwoche für ein Datum. Manchmal habe ich bereits via Internetsuche einen Webdienst bemüht, weil es schneller ging als die Wochen seit dem ersten Donnerstag durchzuzählen.
Schließlich war ich es leid, und weil ich sowieso fast immer eine Shell offen habe, sah ich mich nach geeigneten Kommandozeilenwerkzeugen um.
Das erste was ich fand,
war das ehrwürdige Programm date
.
Die Version aus den coreutils
kennt die Option +%V
für die Ausgabeformatierung,
welche die Kalenderwoche ausgibt.
Kombiniere ich das mit der Option -d "$date"
,
dann kann ich die Kalenderwoche für ein beliebiges Datum herausbekommen.
Mit einer kleinen Shell-Funktion kann ich das so ausbauen, dass ich entweder die KW für das heutige Datum, also diese Woche, oder für ein vorgegebenes Datum bekomme:
,kw () {
local datum="$*"
if [ -z "$datum" ]; then
date +%V
else
date +%V -d "$datum"
fi
}
Damit brauche ich mir keine Gedanken
um die Option -d
und die Anführungsstriche machen,
wenn ich ein Datum vorgeben will.
$ ,kw
35
$ ,kw Oct 15
41
Anders sieht es aus,
wenn ich eine Kalenderwoche genannt bekomme
und das Datum dafür suche.
Hier hilft mir das Programm ncal
.
Gebe ich diesen die Option -w
mit,
bekomme ich die KW mit angegeben,
ein Alias reicht:
alias ,cal='ncal -w'
Nun gut, im Büro und zu Hause habe ich fast immer eine Shell zur Verfügung. Aber unterwegs?
Da leistet mir Termux treue Dienste, dass mir die Shell auf das Mobiltelefon bringt. Auch hier habe ich die Funktion und den Alias, die beim Start von der Bash geladen werden.
Die verwendeten Optionen für die Ausgabe der KW
mit date
und ncal
können auf anderen Systemen anders lauten.
Insbesondere gibt es auf manchen Systemen cal
statt ncal
,
bei dem einige Optionen andere Bedeutungen haben.
Genauere Informationen finden sich üblicherweise
in den zugehörigen Handbuchseiten.
Gegebenenfalls müssen die Funktion oder der Alias angepasst werden.