calendar — Allgemeine kalenderbezogene Funktionen

Quellcode: Lib/calendar.py


Mit diesem Modul kannst du Kalender ausgeben wie das Unix-Programm cal, und es stellt weitere nützliche Funktionen rund um den Kalender bereit. Standardmäßig beginnen diese Kalender mit Montag als erstem und Sonntag als letztem Wochentag (die europäische Gewohnheit). Mit setfirstweekday() setzt du den ersten Wochentag auf Sonntag (6) oder auf einen beliebigen anderen Wochentag. Parameter, die Daten angeben, werden als Ganzzahlen übergeben. Verwandte Funktionalität findest du auch in den Modulen datetime und time.

Die in diesem Modul definierten Funktionen und Klassen verwenden einen idealisierten Kalender, nämlich den heutigen gregorianischen Kalender, unbegrenzt in beide Richtungen fortgesetzt. Das entspricht der Definition des „proleptisch gregorianischen“ Kalenders in Dershowitz und Reingolds Buch „Calendrical Calculations“, wo er die Grundlage aller Berechnungen bildet. Das Jahr null und negative Jahreszahlen werden so ausgelegt, wie es die Norm ISO 8601 vorschreibt. Das Jahr 0 ist 1 v. Chr., das Jahr -1 ist 2 v. Chr. und so weiter.

class calendar.Calendar(firstweekday=0)

Erzeugt ein Calendar-Objekt. firstweekday ist eine Ganzzahl, die den ersten Wochentag angibt. MONDAY ist 0 (die Vorgabe), SUNDAY ist 6.

Ein Calendar-Objekt stellt mehrere Methoden bereit, mit denen sich die Kalenderdaten für die Formatierung aufbereiten lassen. Diese Klasse formatiert selbst nichts – das ist Aufgabe der Unterklassen.

Calendar-Instanzen haben die folgenden Methoden und Attribute:

firstweekday

Der erste Wochentag als Ganzzahl (0–6).

Diese Eigenschaft lässt sich auch über setfirstweekday() und getfirstweekday() setzen beziehungsweise lesen.

getfirstweekday()

Gibt den aktuellen ersten Wochentag als int zurück (0–6).

Entspricht dem Lesen der Eigenschaft firstweekday.

setfirstweekday(firstweekday)

Setzt den ersten Wochentag auf firstweekday, übergeben als int (0–6).

Entspricht dem Setzen der Eigenschaft firstweekday.

iterweekdays()

Gibt einen Iterator über die Wochentagsnummern zurück, die für eine Woche verwendet werden. Der erste Wert des Iterators entspricht dem Wert der Eigenschaft firstweekday.

itermonthdates(year, month)

Gibt einen Iterator für den Monat month (1–12) im Jahr year zurück. Dieser Iterator liefert alle Tage des Monats (als datetime.date-Objekte) sowie alle Tage vor dem Monatsanfang und nach dem Monatsende, die für vollständige Wochen nötig sind.

itermonthdays(year, month)

Gibt einen Iterator für den Monat month im Jahr year zurück, ähnlich wie itermonthdates(), aber ohne die Beschränkung auf den Wertebereich von datetime.date. Zurückgegeben werden einfach die Tagesnummern des Monats. Für Tage außerhalb des angegebenen Monats ist die Tagesnummer 0.

itermonthdays2(year, month)

Gibt einen Iterator für den Monat month im Jahr year zurück, ähnlich wie itermonthdates(), aber ohne die Beschränkung auf den Wertebereich von datetime.date. Zurückgegeben werden Tupel aus einer Tagesnummer des Monats und einer Wochentagsnummer.

itermonthdays3(year, month)

Gibt einen Iterator für den Monat month im Jahr year zurück, ähnlich wie itermonthdates(), aber ohne die Beschränkung auf den Wertebereich von datetime.date. Zurückgegeben werden Tupel aus einer Jahres-, einer Monats- und einer Tagesnummer.

Added in version 3.7.

itermonthdays4(year, month)

Gibt einen Iterator für den Monat month im Jahr year zurück, ähnlich wie itermonthdates(), aber ohne die Beschränkung auf den Wertebereich von datetime.date. Zurückgegeben werden Tupel aus einer Jahres-, einer Monats-, einer Tages- und einer Wochentagsnummer.

Added in version 3.7.

monthdatescalendar(year, month)

Gibt eine Liste der Wochen des Monats month im Jahr year als vollständige Wochen zurück. Wochen sind Listen aus sieben datetime.date-Objekten.

monthdays2calendar(year, month)

Gibt eine Liste der Wochen des Monats month im Jahr year als vollständige Wochen zurück. Wochen sind Listen aus sieben Tupeln aus Tagesnummer und Wochentagsnummer.

monthdayscalendar(year, month)

Gibt eine Liste der Wochen des Monats month im Jahr year als vollständige Wochen zurück. Wochen sind Listen aus sieben Tagesnummern.

yeardatescalendar(year, width=3)

Gibt die Daten des angegebenen Jahres formatierfertig zurück. Der Rückgabewert ist eine Liste von Monatszeilen. Jede Monatszeile enthält bis zu width Monate (Vorgabe 3). Jeder Monat enthält zwischen 4 und 6 Wochen, jede Woche 1–7 Tage. Die Tage sind datetime.date-Objekte.

yeardays2calendar(year, width=3)

Gibt die Daten des angegebenen Jahres formatierfertig zurück (ähnlich wie yeardatescalendar()). Die Einträge in den Wochenlisten sind Tupel aus Tagesnummer und Wochentagsnummer. Tagesnummern außerhalb dieses Monats sind null.

yeardayscalendar(year, width=3)

Gibt die Daten des angegebenen Jahres formatierfertig zurück (ähnlich wie yeardatescalendar()). Die Einträge in den Wochenlisten sind Tagesnummern. Tagesnummern außerhalb dieses Monats sind null.

class calendar.TextCalendar(firstweekday=0)

Mit dieser Klasse lassen sich Kalender als reiner Text erzeugen.

TextCalendar-Instanzen haben die folgenden Methoden:

prweek(theweek, width)

Gibt den Kalender einer Woche aus, wie ihn formatweek() liefert, und ohne abschließenden Zeilenumbruch.

formatday(theday, weekday, width)

Gibt eine Zeichenkette zurück, die einen einzelnen Tag in der angegebenen Breite width darstellt. Ist theday gleich 0, wird eine Zeichenkette aus Leerzeichen in dieser Breite zurückgegeben, die einen leeren Tag darstellt. Der Parameter weekday wird nicht verwendet.

formatweek(theweek, width)

Return a single week in a string with no newline. width specifies the width of the date columns, which are centered. Depends on the first weekday as specified in the constructor or set by the setfirstweekday() method.

formatweekday(weekday, width)

Gibt eine Zeichenkette zurück, die den Namen eines einzelnen Wochentags in der angegebenen Breite width darstellt. Der Parameter weekday ist eine Ganzzahl für den Wochentag, wobei 0 Montag und 6 Sonntag ist.

formatweekheader(width)

Gibt eine Zeichenkette mit der Kopfzeile der Wochentagsnamen zurück, formatiert mit der angegebenen Breite width je Spalte. Die Namen hängen von den Gebietsschema-Einstellungen ab und werden auf die angegebene Breite aufgefüllt.

formatmonth(theyear, themonth, w=0, l=0)

Gibt den Kalender eines Monats als mehrzeilige Zeichenkette zurück. Ist w angegeben, legt es die Breite der Datumsspalten fest, die zentriert werden. Ist l angegeben, legt es die Anzahl der Zeilen fest, die jede Woche einnimmt. Hängt vom ersten Wochentag ab, wie er im Konstruktor angegeben oder mit der Methode setfirstweekday() gesetzt wurde.

formatmonthname(theyear, themonth, width, withyear=True)

Gibt eine Zeichenkette zurück, die den Namen des Monats zentriert in der angegebenen Breite width darstellt. Ist withyear gleich True, wird das Jahr mit ausgegeben. Die Parameter theyear und themonth geben Jahr und Monat an, für die der Name formatiert werden soll.

prmonth(theyear, themonth, w=0, l=0)

Gibt den Kalender eines Monats aus, wie ihn formatmonth() liefert.

formatyear(theyear, w=2, l=1, c=6, m=3)

Gibt einen Kalender für ein ganzes Jahr mit m Spalten als mehrzeilige Zeichenkette zurück. Die optionalen Parameter w, l und c stehen für die Breite der Datumsspalten, die Zeilen je Woche und die Anzahl der Leerzeichen zwischen den Monatsspalten. Hängt vom ersten Wochentag ab, wie er im Konstruktor angegeben oder mit der Methode setfirstweekday() gesetzt wurde. Das früheste Jahr, für das sich ein Kalender erzeugen lässt, hängt von der Plattform ab.

pryear(theyear, w=2, l=1, c=6, m=3)

Gibt den Kalender für ein ganzes Jahr aus, wie ihn formatyear() liefert.

class calendar.HTMLCalendar(firstweekday=0)

Mit dieser Klasse lassen sich HTML-Kalender erzeugen.

HTMLCalendar-Instanzen haben die folgenden Methoden:

formatmonth(theyear, themonth, withyear=True)

Gibt den Kalender eines Monats als HTML-Tabelle zurück. Ist withyear wahr, wird das Jahr in die Kopfzeile aufgenommen, andernfalls erscheint nur der Monatsname.

formatyear(theyear, width=3)

Gibt den Kalender eines Jahres als HTML-Tabelle zurück. width (Vorgabe 3) legt die Anzahl der Monate je Zeile fest.

formatyearpage(theyear, width=3, css='calendar.css', encoding=None)

Gibt den Kalender eines Jahres als vollständige HTML-Seite zurück. width (Vorgabe 3) legt die Anzahl der Monate je Zeile fest. css ist der Name des zu verwendenden Cascading Style Sheets. Soll kein Stylesheet verwendet werden, lässt sich None übergeben. encoding gibt die Kodierung für die Ausgabe an (Vorgabe 'utf-8').

formatmonthname(theyear, themonth, withyear=True)

Gibt einen Monatsnamen als HTML-Tabellenzeile zurück. Ist withyear wahr, wird das Jahr in die Zeile aufgenommen, andernfalls erscheint nur der Monatsname.

HTMLCalendar hat die folgenden Attribute, die du überschreiben kannst, um die vom Kalender verwendeten CSS-Klassen anzupassen:

cssclasses

Eine Liste der CSS-Klassen, die für jeden Wochentag verwendet werden. Die Standardliste lautet:

cssclasses = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"]

Für jeden Tag lassen sich weitere Stile ergänzen:

cssclasses = ["mon text-bold", "tue", "wed", "thu", "fri", "sat", "sun red"]

Beachte, dass diese Liste genau sieben Einträge enthalten muss.

cssclass_noday

Die CSS-Klasse für einen Wochentag, der im vorherigen oder im kommenden Monat liegt.

Added in version 3.7.

cssclasses_weekday_head

Eine Liste der CSS-Klassen, die für die Wochentagsnamen in der Kopfzeile verwendet werden. Die Vorgabe ist dieselbe wie bei cssclasses.

Added in version 3.7.

cssclass_month_head

Die CSS-Klasse für den Monatskopf (verwendet von formatmonthname()). Der Vorgabewert ist "month".

Added in version 3.7.

cssclass_month

Die CSS-Klasse für die Tabelle des gesamten Monats (verwendet von formatmonth()). Der Vorgabewert ist "month".

Added in version 3.7.

cssclass_year

Die CSS-Klasse für die Tabelle aus Tabellen des gesamten Jahres (verwendet von formatyear()). Der Vorgabewert ist "year".

Added in version 3.7.

cssclass_year_head

Die CSS-Klasse für den Tabellenkopf des gesamten Jahres (verwendet von formatyear()). Der Vorgabewert ist "year".

Added in version 3.7.

Beachte, dass die Benennung der oben beschriebenen Klassenattribute im Singular steht (etwa cssclass_month oder cssclass_noday), sich die einzelne CSS-Klasse aber auch durch eine mit Leerzeichen getrennte Liste von CSS-Klassen ersetzen lässt, zum Beispiel:

"text-bold text-red"

Hier ein Beispiel, wie sich HTMLCalendar anpassen lässt:

class CustomHTMLCal(calendar.HTMLCalendar):
    cssclasses = [style + " text-nowrap" for style in
                  calendar.HTMLCalendar.cssclasses]
    cssclass_month_head = "text-center month-head"
    cssclass_month = "text-center month"
    cssclass_year = "text-italic lead"
class calendar.LocaleTextCalendar(firstweekday=0, locale=None)

Dieser Unterklasse von TextCalendar lässt sich im Konstruktor ein Gebietsschemaname übergeben. Sie gibt die Monats- und Wochentagsnamen dann in diesem Gebietsschema zurück.

class calendar.LocaleHTMLCalendar(firstweekday=0, locale=None)

Dieser Unterklasse von HTMLCalendar lässt sich im Konstruktor ein Gebietsschemaname übergeben. Sie gibt die Monats- und Wochentagsnamen dann in diesem Gebietsschema zurück.

Bemerkung

Der Konstruktor sowie die Methoden formatweekday() und formatmonthname() dieser beiden Klassen ändern das Gebietsschema LC_TIME vorübergehend auf das angegebene locale. Da das aktuelle Gebietsschema eine prozessweite Einstellung ist, sind sie nicht threadsicher.

Für einfache Textkalender stellt dieses Modul die folgenden Funktionen bereit.

calendar.setfirstweekday(firstweekday)

Setzt den Wochentag (0 ist Montag, 6 ist Sonntag), mit dem jede Woche beginnt. Zur Bequemlichkeit stehen die Werte MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY und SUNDAY bereit. Um zum Beispiel Sonntag als ersten Wochentag zu setzen:

import calendar
calendar.setfirstweekday(calendar.SUNDAY)
calendar.firstweekday()

Gibt die aktuelle Einstellung für den Wochentag zurück, mit dem jede Woche beginnt.

calendar.isleap(year)

Gibt True zurück, wenn year ein Schaltjahr ist, andernfalls False.

calendar.leapdays(y1, y2)

Gibt die Anzahl der Schaltjahre im Bereich von y1 bis y2 (exklusiv) zurück, wobei y1 und y2 Jahre sind.

Diese Funktion arbeitet auch für Bereiche, die über einen Jahrhundertwechsel hinausgehen.

calendar.weekday(year, month, day)

Gibt den Wochentag (0 ist Montag) für year (1970–…), month (1–12) und day (1–31) zurück.

calendar.weekheader(width)

Gibt eine Kopfzeile mit abgekürzten Wochentagsnamen zurück. width gibt die Breite eines Wochentags in Zeichen an.

calendar.monthrange(year, month)

Gibt den Wochentag des ersten Tages des Monats und die Anzahl der Tage im Monat für das angegebene year und month zurück.

calendar.monthcalendar(year, month)

Gibt eine Matrix zurück, die den Kalender eines Monats darstellt. Jede Zeile stellt eine Woche dar; Tage außerhalb des Monats werden durch Nullen dargestellt. Jede Woche beginnt mit Montag, sofern nicht mit setfirstweekday() anders festgelegt.

calendar.prmonth(theyear, themonth, w=0, l=0)

Gibt den Kalender eines Monats aus, wie ihn month() liefert.

calendar.month(theyear, themonth, w=0, l=0)

Gibt den Kalender eines Monats als mehrzeilige Zeichenkette zurück und verwendet dazu formatmonth() der Klasse TextCalendar.

calendar.prcal(theyear, w=0, l=0, c=6, m=3)

Gibt den Kalender für ein ganzes Jahr aus, wie ihn calendar() liefert.

calendar.calendar(theyear, w=2, l=1, c=6, m=3)

Gibt einen dreispaltigen Kalender für ein ganzes Jahr als mehrzeilige Zeichenkette zurück und verwendet dazu formatyear() der Klasse TextCalendar.

calendar.timegm(tuple)

Eine nicht verwandte, aber praktische Funktion: Sie nimmt ein Zeit-Tupel, wie es die Funktion gmtime() im Modul time zurückgibt, und gibt den entsprechenden Unix-Zeitstempel zurück, wobei sie die Epoche 1970 und die POSIX-Kodierung voraussetzt. Tatsächlich sind time.gmtime() und timegm() zueinander invers.

Das Modul calendar exportiert die folgenden Datenattribute:

calendar.day_name

Eine Sequenz, die die Tage der Woche im aktuellen Gebietsschema darstellt, wobei Montag der Tag mit der Nummer 0 ist.

>>> import calendar
>>> list(calendar.day_name)
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
calendar.day_abbr

Eine Sequenz, die die abgekürzten Tage der Woche im aktuellen Gebietsschema darstellt, wobei Mo der Tag mit der Nummer 0 ist.

>>> import calendar
>>> list(calendar.day_abbr)
['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
calendar.MONDAY
calendar.TUESDAY
calendar.WEDNESDAY
calendar.THURSDAY
calendar.FRIDAY
calendar.SATURDAY
calendar.SUNDAY

Aliase für die Tage der Woche, wobei MONDAY 0 und SUNDAY 6 ist.

Added in version 3.12.

class calendar.Day

Eine Enumeration, die die Tage der Woche als ganzzahlige Konstanten definiert. Die Mitglieder dieser Enumeration werden als MONDAY bis SUNDAY in den Modulnamensraum exportiert.

Added in version 3.12.

calendar.month_name

Eine Sequenz, die die Monate des Jahres im aktuellen Gebietsschema darstellt. Sie folgt der üblichen Konvention, dass Januar der Monat mit der Nummer 1 ist, hat also die Länge 13, und month_name[0] ist die leere Zeichenkette.

>>> import calendar
>>> list(calendar.month_name)
['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']

Vorsicht

In Gebietsschemata mit alternativen Formen der Monatsnamen ist die Sequenz month_name möglicherweise nicht geeignet, wenn ein Monatsname für sich steht und nicht Teil eines Datums ist. Im Griechischen und in vielen slawischen und baltischen Sprachen liefert month_name zum Beispiel den Monat im Genitiv. Verwende standalone_month_name für eine Form, die sich für den alleinstehenden Gebrauch eignet.

calendar.month_abbr

Eine Sequenz, die die abgekürzten Monate des Jahres im aktuellen Gebietsschema darstellt. Sie folgt der üblichen Konvention, dass Januar der Monat mit der Nummer 1 ist, hat also die Länge 13, und month_abbr[0] ist die leere Zeichenkette.

>>> import calendar
>>> list(calendar.month_abbr)
['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

Vorsicht

In Gebietsschemata mit alternativen Formen der Monatsnamen ist die Sequenz month_abbr möglicherweise nicht geeignet, wenn ein Monatsname für sich steht und nicht Teil eines Datums ist. Verwende standalone_month_abbr für eine Form, die sich für den alleinstehenden Gebrauch eignet.

calendar.standalone_month_name

Eine Sequenz, die die Monate des Jahres im aktuellen Gebietsschema in der alleinstehenden Form darstellt, sofern das Gebietsschema eine solche bereitstellt. Andernfalls entspricht sie month_name.

Added in version 3.15.

calendar.standalone_month_abbr

Eine Sequenz, die die abgekürzten Monate des Jahres im aktuellen Gebietsschema in der alleinstehenden Form darstellt, sofern das Gebietsschema eine solche bereitstellt. Andernfalls entspricht sie month_abbr.

Added in version 3.15.

calendar.JANUARY
calendar.FEBRUARY
calendar.MARCH
calendar.APRIL
calendar.MAY
calendar.JUNE
calendar.JULY
calendar.AUGUST
calendar.SEPTEMBER
calendar.OCTOBER
calendar.NOVEMBER
calendar.DECEMBER

Aliase für die Monate des Jahres, wobei JANUARY 1 und DECEMBER 12 ist.

Added in version 3.12.

class calendar.Month

Eine Enumeration, die die Monate des Jahres als ganzzahlige Konstanten definiert. Die Mitglieder dieser Enumeration werden als JANUARY bis DECEMBER in den Modulnamensraum exportiert.

Added in version 3.12.

Das Modul calendar definiert die folgenden Ausnahmen:

exception calendar.IllegalMonthError(month)

Eine Unterklasse von ValueError und IndexError, die ausgelöst wird, wenn die angegebene Monatsnummer außerhalb des Bereichs 1-12 (inklusive) liegt.

Geändert in Version 3.12: IllegalMonthError ist jetzt auch eine Unterklasse von ValueError. Neuer Code sollte es vermeiden, IndexError abzufangen.

month

Die ungültige Monatsnummer.

exception calendar.IllegalWeekdayError(weekday)

Eine Unterklasse von ValueError, die ausgelöst wird, wenn die angegebene Wochentagsnummer außerhalb des Bereichs 0-6 (inklusive) liegt.

weekday

Die ungültige Wochentagsnummer.

Siehe auch

Modul datetime

Objektorientierte Schnittstelle für Datums- und Zeitangaben mit ähnlicher Funktionalität wie das Modul time.

Modul time

Grundlegende zeitbezogene Funktionen.

Verwendung über die Befehlszeile

Added in version 2.5.

Das Modul calendar lässt sich als Skript über die Befehlszeile ausführen, um einen Kalender interaktiv auszugeben.

python -m calendar [-h] [-L LOCALE] [-e ENCODING] [-t {text,html}]
                   [-w WIDTH] [-l LINES] [-s SPACING] [-m MONTHS] [-c CSS]
                   [-f FIRST_WEEKDAY] [year] [month]

Um zum Beispiel einen Kalender für das Jahr 2000 auszugeben:

$ python -m calendar 2000
                                  2000

      January                   February                   March
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6             1  2  3  4  5
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       6  7  8  9 10 11 12
10 11 12 13 14 15 16      14 15 16 17 18 19 20      13 14 15 16 17 18 19
17 18 19 20 21 22 23      21 22 23 24 25 26 27      20 21 22 23 24 25 26
24 25 26 27 28 29 30      28 29                     27 28 29 30 31
31

       April                      May                       June
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2       1  2  3  4  5  6  7                1  2  3  4
 3  4  5  6  7  8  9       8  9 10 11 12 13 14       5  6  7  8  9 10 11
10 11 12 13 14 15 16      15 16 17 18 19 20 21      12 13 14 15 16 17 18
17 18 19 20 21 22 23      22 23 24 25 26 27 28      19 20 21 22 23 24 25
24 25 26 27 28 29 30      29 30 31                  26 27 28 29 30

        July                     August                  September
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                1  2          1  2  3  4  5  6                   1  2  3
 3  4  5  6  7  8  9       7  8  9 10 11 12 13       4  5  6  7  8  9 10
10 11 12 13 14 15 16      14 15 16 17 18 19 20      11 12 13 14 15 16 17
17 18 19 20 21 22 23      21 22 23 24 25 26 27      18 19 20 21 22 23 24
24 25 26 27 28 29 30      28 29 30 31               25 26 27 28 29 30
31

      October                   November                  December
Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                   1             1  2  3  4  5                   1  2  3
 2  3  4  5  6  7  8       6  7  8  9 10 11 12       4  5  6  7  8  9 10
 9 10 11 12 13 14 15      13 14 15 16 17 18 19      11 12 13 14 15 16 17
16 17 18 19 20 21 22      20 21 22 23 24 25 26      18 19 20 21 22 23 24
23 24 25 26 27 28 29      27 28 29 30               25 26 27 28 29 30 31
30 31

Die folgenden Optionen werden akzeptiert:

--help, -h

Gibt die Hilfemeldung aus und beendet das Programm.

--locale LOCALE, -L LOCALE

Das Gebietsschema, das für die Monats- und Wochentagsnamen verwendet wird. Vorgabe ist Englisch.

--encoding ENCODING, -e ENCODING

Die Kodierung, die für die Ausgabe verwendet wird. --encoding ist erforderlich, wenn --locale gesetzt ist.

--type {text,html}, -t {text,html}

Gibt den Kalender als Text im Terminal oder als HTML-Dokument aus.

--first-weekday FIRST_WEEKDAY, -f FIRST_WEEKDAY

Der Wochentag, mit dem jede Woche beginnt. Muss eine Zahl zwischen 0 (Montag) und 6 (Sonntag) sein. Vorgabe ist 0.

Added in version 3.13.

year

Das Jahr, für das der Kalender ausgegeben wird. Vorgabe ist das aktuelle Jahr.

month

Der Monat des angegebenen year, für den der Kalender ausgegeben wird. Muss eine Zahl zwischen 1 und 12 sein. In der Vorgabe wird ein Kalender für das gesamte Jahr ausgegeben.

Optionen für den Textmodus:

--width WIDTH, -w WIDTH

Die Breite der Datumsspalte in Terminalspalten. Das Datum wird zentriert in der Spalte ausgegeben. Werte kleiner als 2 werden ignoriert. Vorgabe ist 2.

--lines LINES, -l LINES

Die Anzahl der Zeilen je Woche in Terminalzeilen. Das Datum wird oben ausgerichtet ausgegeben. Werte kleiner als 1 werden ignoriert. Vorgabe ist 1.

--spacing SPACING, -s SPACING

Der Abstand zwischen den Monaten in Spalten. Werte kleiner als 2 werden ignoriert. Vorgabe ist 6.

--months MONTHS, -m MONTHS

Die Anzahl der Monate, die je Zeile ausgegeben werden. Vorgabe ist 3.

Geändert in Version 3.14: Standardmäßig wird das heutige Datum farbig hervorgehoben. Das lässt sich über Umgebungsvariablen steuern.

Geändert in Version 3.15: Standardmäßig wird jetzt auch der Monat farbig hervorgehoben, und die Wochentage sind ebenfalls farbig. Dieses Verhalten lässt sich über Umgebungsvariablen steuern.

Optionen für den HTML-Modus:

--css CSS, -c CSS

Der Pfad eines CSS-Stylesheets, das für den Kalender verwendet wird. Dieser muss entweder relativ zum erzeugten HTML sein oder eine absolute HTTP- oder file:///-URL.