Montag, 6. Juli 2009, 01:06
gcal ist ein Programm für die Kommandozeile um Kalender zu berechnen. Solche Programme gibt es sicher etliche, gcal kennt darüber hinaus aber Feiertage von diversen Ländern, Bundesländern und Religionsgemeinschaften und kann zahlreiche astronomische Daten berechnen.
Wird gcal ohne Parameter aufgerufen, zeigt es den Kalender vom Aktuellen Monat an:
Feiertage
Mit --holiday-list lässt sich die ewige Feiertagsliste anzeigen. --holiday-list=short zeigt nur gesetzliche Feiertage an. Ohne weitere Parameter ist diese Liste zunächst einmal leer. Die Liste lässt sich mit diversen Feiertagen befüllen. Zum Beispiel gibt es --christian-holidays, --islamic-civil-holidays oder --persian-jalaali-holidays.
Dies sind Feiertage, die auf der ganzen Welt gleich sind. Es sind aber auch länderspezifische Feiertagslisten verfügbar. Oft gibt es Feiertagslisten nicht nur für einen Nationalstaat, sondern für unterschiedliche Gebiete in dem Staat. In den USA zum Beispiel für alle Bundesstaaten und in Deutschland für die einzelnen Bundesländer. Die Liste der Länder und der entsprechenden Codes für die Kommandozeile ist in der Dokumentation enthalten. Die Liste geht von Andorra bis Zimbabwe, insgesamt 226 Länder und Gebiete.
Interessieren mich die Feiertage der Vereinigten Arabischen Emirate, mache ich folgendes:
Astronomische Ereignisse
Die Feiertagsliste kann mit Terminen von grundsätzlichen astronomischen Ereignissen angereichert werden. Das sind Sonnen- und Mondfinsternisse, Sonnenwende, Tag- und Nachtgleiche und die Daten von Voll-, Halb- und Neumond. Möchte ich nur die Feiertagsliste (ohne Kalender) vom Januar 2010 haben, sieht der Aufruf wie folgt aus:
Zeitzone
todo
Special Texts
Mit den Special Texts lässt sich eine Liste mit festen Terminen pflegen. Die Special Texts werden in ~/.gcalrc eingetragen und mit der Option -c abgerufen. Als feste Termine lassen sich auch wiederkehrende Termine eintragen. Wird in der .gcalrc folgedes eingetragen:
Dokumentation
Die Dokumentation liegt als GNU Info vor. Im Web ist sie z.b. hier zu finden: http://sunsite.ualberta.ca/Documentation/Gnu/gcal-3.00/html_node/gcal.html
Wird gcal ohne Parameter aufgerufen, zeigt es den Kalender vom Aktuellen Monat an:
$ gcal März 2009 Montag 2 9 16 23 30 Dienstag 3 10 17 24 31 Mittwoch 4 11 18 25 Donnerstag 5 12 19 26 Freitag 6 13 20 27 Samstag 7 14 21 28 Sonntag 1 8 15 22 29Wer einen anderen Monat anzeigen möchte, kann den Monat des akutellen Jahres angeben (gcal 11), Jahr und Monat (gcal 11 2010) oder auch ein ganzes Jahr anzeigen lassen (gcal 2009). So weit alles recht unspektakulär.
Feiertage
Mit --holiday-list lässt sich die ewige Feiertagsliste anzeigen. --holiday-list=short zeigt nur gesetzliche Feiertage an. Ohne weitere Parameter ist diese Liste zunächst einmal leer. Die Liste lässt sich mit diversen Feiertagen befüllen. Zum Beispiel gibt es --christian-holidays, --islamic-civil-holidays oder --persian-jalaali-holidays.
Dies sind Feiertage, die auf der ganzen Welt gleich sind. Es sind aber auch länderspezifische Feiertagslisten verfügbar. Oft gibt es Feiertagslisten nicht nur für einen Nationalstaat, sondern für unterschiedliche Gebiete in dem Staat. In den USA zum Beispiel für alle Bundesstaaten und in Deutschland für die einzelnen Bundesländer. Die Liste der Länder und der entsprechenden Codes für die Kommandozeile ist in der Dokumentation enthalten. Die Liste geht von Andorra bis Zimbabwe, insgesamt 226 Länder und Gebiete.
Interessieren mich die Feiertage der Vereinigten Arabischen Emirate, mache ich folgendes:
$ gcal --holiday-list --cc-holidays=AE Ewige Feiertagsliste: Das Jahr 2009 ist KEIN Schaltjahr Neujahr (AE) + Do, 1 Jan 2009 = -86 Tage Eid-i-Milad-un-Nabi (AE) + Mo, 9 Mär 2009 = -19 Tage Shab-e-Mi'raj (AE) + Mo, 20 Jul 2009 = +114 Tage Scheich Zayeds Himmelfahrt (AE) + Do, 6 Aug 2009 = +131 Tage Ramadan (AE) - Sa, 22 Aug 2009 = +147 Tage Eid-al-Fitr (AE) + Mo, 21 Sep 2009 = +177 Tage Eid-al-Fitr (AE) + Di, 22 Sep 2009 = +178 Tage Eid-al-Fitr (AE) + Mi, 23 Sep 2009 = +179 Tage Eid-al-Adha (AE) + Sa, 28 Nov 2009 = +245 Tage Eid-al-Adha (AE) + So, 29 Nov 2009 = +246 Tage Eid-al-Adha (AE) + Mo, 30 Nov 2009 = +247 Tage Nationalfeiertag (AE) + Mi, 2 Dez 2009 = +249 Tage Islamisches Neujahr 1431 (AE) + Fr, 18 Dez 2009 = +265 TageFür Deutschland gibt es Bundesland-spezifische Feiertage.Statt --cc-holidays=AE benutze ich für Berlin zum Beispiel --cc-holidays=DE_BL. Alle verfügbaren Ländercodes sind wie gesagt in der Dokumentation aufgelistet.
Astronomische Ereignisse
Die Feiertagsliste kann mit Terminen von grundsätzlichen astronomischen Ereignissen angereichert werden. Das sind Sonnen- und Mondfinsternisse, Sonnenwende, Tag- und Nachtgleiche und die Daten von Voll-, Halb- und Neumond. Möchte ich nur die Feiertagsliste (ohne Kalender) vom Januar 2010 haben, sieht der Aufruf wie folgt aus:
$ gcal --suppress-calendar --holiday-list --astronomical-holidays 1 2010 Ewige Feiertagsliste: Abnehmender Halbmond 10:39 (Ast) - Do, 7 Jan 2010 Neumond 07:11 (Ast) - Fr, 15 Jan 2010 Sonnenfinsternis/Ring 07:06 (Ast) - Fr, 15 Jan 2010 Zunehmender Halbmond 10:53 (Ast) - Sa, 23 Jan 2010 Vollmond 06:17 (Ast) - Sa, 30 Jan 2010Alle Daten die --astronomical-holidays liefert sind überall auf der Erde gültig. Es brauchen also keine Längen/Breitengerade angegeben werden. In der Ausgabe lässt sich jedoch sehen, dass die Termine Minutengenau sind. Und da stößt man natürlich wieder auf zwei Probleme: Zeitzonen und Sommerzeit.
Zeitzone
todo
Special Texts
Mit den Special Texts lässt sich eine Liste mit festen Terminen pflegen. Die Special Texts werden in ~/.gcalrc eingetragen und mit der Option -c abgerufen. Als feste Termine lassen sich auch wiederkehrende Termine eintragen. Wird in der .gcalrc folgedes eingetragen:
20090705 80. Geburtstag von Muttiliefert gcal am 5. Juli 2009 aufgerufen:
$ gcal -c Terminliste: So, 5 Jul 2009: 80. Geburtstag von MuttiSoll der Termin für jedes Jahr gelten, so muss das Jahr auf 0000 gesetzt werden. Normalerweise zeigt gcal immer die Termine für das aktuelle Datum an. Wenn nicht das aktuelle Datum benutzt werden soll sieht der Aufruf so aus:
$ clear; gcal -c %20090705Es lassen sich auch Termine eintragen die jeden Tag erscheinen:
0*d1#999 Katze füttern nicht vergessen
Dokumentation
Die Dokumentation liegt als GNU Info vor. Im Web ist sie z.b. hier zu finden: http://sunsite.ualberta.ca/Documentation/Gnu/gcal-3.00/html_node/gcal.html