base.pl [ --verbose ... | --no_verbose ]
[ --country COUNTRY ]... [ --out OUT ] [ --year YEAR ]
[ --f F ]... [ --w W ]... [ --ft FT ]
[ --mode { h7 | h14 | v7 | v14 } ]...
[ --monmode { de | num | i } ]
[ --wd | --no_wd ] [ --moncol | --no_moncol ] [ --weekno | --no_weekno ]
--helpGibt eine kurze Hilfe aus
--versionGibt kurze Hinweise zum Programm und die Version aus.
--verboseErhöht den Umfang der Meldungen nach STDERR.
--no_verboseUnterdrückt die Ausgabe von Meldungen. Die Optionen --verbose und --no_verbose werden der Reihe nach ausgewertet.
--country COUNTRYDer Wert COUNTRY ersetzt den Platzhalter ${ctry} im Pfad der Ausgabedatei OUT. Wenn das Argument mehrfach verwendet wird, wird für jeden Wert COUNTRY eine Ausgabedatei erstellt. COUNTRY ist hier die Kennung eines Landes oder einer Region.
--out OUTOUT ist der Pfad einer Ausgabedatei. Er kann die Platzhalter ${year} für das Kalenderjahr und ${ctry} für die Kennung des Landes (COUNTRY) enthalten sowie die Platzhalter ${monmode}, ${[cnt]wd}, ${[cnt]moncol}, ${[cnt]weekno} für die entsprechenden Befehlszeilenargumente Bei mehreren Ländern sollte er den Platzhalter ${cntry} enthalten.
--year YEARDas Kalenderjahr. Ein Kalenderjahr, das aus der Eingabedatei FT gelesen wird, hat Vorrang vor YEAR.
--f FF ist das Datum einer Feiertags im Format MM-TT. Das Argument kann für mehrere Feiertage wiederholt werden. Das Argument wird ignoriert, wenn Feiertage aus der Texteingabe FT gelesen werden. Wenn dieses Argument nicht benutzt wird und auch keine Feiertage aus FT gelesen werden, dann werden die gesetzlichen Feiertage in der Bundesrepublik Deutschland als Feiertage markiert (die „Standard”-Feiertage). Das Argument -f x ohne Eingabe weiterer Feiertage bewirkt, dass in der Ausgabe keine Feiertage markiert werden.
--w WW ist das Datum eines Feiertags im Format MM-TT. Das Argument kann für mehrere Feiertage wiederholt werden. Zusätzlich gelten die „Standard”-Feiertage es sei denn, auch die Option --f wird benutzt (nicht ratsam).
Wenn Feiertage aus der Texteingabe FT gelesen werden, werden die Feiertage in der Befehlszeile (F oder W) ignoriert.
--ft FTDie Feiertage und das Jahr können aus einer Texteingabe gelesen werden. Die Optionen --f und --w haben dann keine Wirkung.
Wenn FT STDIN ist, wird die Standard-Eingabe gelesen.
Wenn FT none oder nicht definiert ist, bestimmen die Argumente F und W die Feiertage.
Sonst ist FT der Dateipfad einer Textdatei, aus der die Feiertage und möglicherweise das Jahr gelesen werden.
Die Datei wird zeilenweise gelesen. Leerzeichen am Zeilenanfang und Zeileneende werden ignoriert. Zeilen, die mit dem Zeichen # beginnen, sind Kommentarzeilen. Zeilen, die das Format MM-TT oder MM-TT # Kommentar haben, bezeichnen einen Feiertag. Eine Zeile im Format 20[0-9][0-9] gibt ein Jahr an. Dieser Wert hat Vorrang vor dem Befehlszeilen-Argument YEAR. Die Eingabe endet, wenn eine Zeile mit #END Feiertage beginnt.
--mode MODEMODE bestimmt die Anordnung der Kalendertage auf einem Monatsblatt. Die möglichen Werte sind:
h14 | Die Tage zweier Wochen werden in einer waagerechten Reihe ausgegeben. |
h7 | Die Tage einer Woche werden in einer waagerechten Reihe ausgegeben. |
v14 | Die Tage zweier Wochen werden in einer senkrechten Spalte ausgegeben. |
v7 | Die Tage einer Woche werden in einer senkrechten Spalte ausgegeben. |
Das Argument kann für mehrere Tabellen je Monat wiederholt werden. Die Tabellen sind durch das Attribut class gekennzeichnet.
--monmode MONMODEMONMODE bestimmt der Art der Angabe der Monate. Die möglichen Werte sind:
de | Deutsche Monatsnamen |
num | Format MM-JJJJ. |
i | Platzhalter <l:ph id = ", s. Grunddaten |
--wdAlle Wochentage werden durch ein Wort im Atttribut td/@class gekennzeichnet. Sonst werden nur Sonntage gekennzeichnet.
--no_wdHebt die Wirkung der Option --wd auf.
--moncolEs wird eine Spalte oder Zeile für die Bezeichnung des Monats ausgegeben.
--no_moncolHebt die Wirkung der Option --moncol auf.
--weeknoEs wird eine Spalte oder Zeile mit der Wochennummer ausgegeben.
--no_weeknoHebt die Wirkung der Option --weekno auf.
Dieses Programm gibt die Kalender-Grunddaten für ein Jahr aus.
In einigen Ländern beginnt die Woche nicht mit dem Montag. In manchen Ländern werden die Wochen des Jahres anders gezählt.
Das Programm ist mit Perl Version 5.10.1 entwickelt. Es benutzt die folgenden Module:
Herbaer::ReadargsDie Funktion read_args aus diesem Modul verarbeitet die Befehlszeilenargumente, die Funktion print_message_with_values gibt die Hilfe mit den aktuellen Einstellungen aus.
Herbaer::ReplaceDie Funktion replace aus diesem Modul ersetzt die Platzhalter im Wert OUT.
Die Formel zur Berechnung des Kalenderdatums des Osterfestes habe ich der Website http://www.gmarts.org/index.php?go=415 entnommen. Danach richten sich die Bestimmung der Wochentage und der Daten der gesetzlichen Feiertage des Osterfestkreises.
Für Hinweise zu Formeln zur Berechnung der Daten anderer besonderer Tage (zum Beispiel des Jahresbeginns nach dem chinesischen Mondkalender) bin ich dankbar.
Hinsichtlich der Wochenzählung und des ersten Tags der Woche orientiere ich mich am Wikipedia-Artikel https://de.wikipedia.org/wiki/ISO_8601