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
]
--help
Gibt eine kurze Hilfe aus
--version
Gibt kurze Hinweise zum Programm und die Version aus.
--verbose
Erhöht den Umfang der Meldungen nach STDERR.
--no_verbose
Unterdrückt die Ausgabe von Meldungen. Die Optionen --verbose
und --no_verbose
werden der Reihe nach ausgewertet.
--country
COUNTRY
Der 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
OUT
OUT
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
YEAR
Das Kalenderjahr. Ein Kalenderjahr, das aus der Eingabedatei FT
gelesen wird, hat Vorrang vor YEAR
.
--f
F
F
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
W
W
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
FT
Die 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
MODE
MODE
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
MONMODE
MONMODE
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 |
--wd
Alle Wochentage werden durch ein Wort im Atttribut td/@class
gekennzeichnet. Sonst werden nur Sonntage gekennzeichnet.
--no_wd
Hebt die Wirkung der Option --wd
auf.
--moncol
Es wird eine Spalte oder Zeile für die Bezeichnung des Monats ausgegeben.
--no_moncol
Hebt die Wirkung der Option --moncol
auf.
--weekno
Es wird eine Spalte oder Zeile mit der Wochennummer ausgegeben.
--no_weekno
Hebt 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::Readargs
Die Funktion read_args
aus diesem Modul verarbeitet die Befehlszeilenargumente, die Funktion print_message_with_values
gibt die Hilfe mit den aktuellen Einstellungen aus.
Herbaer::Replace
Die 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