"calendar" --- General calendar-related functions
*************************************************

**Source code:** Lib/calendar.py

======================================================================

Modul ini mengijinkan saudara untuk mendapatkan keluaran kalender-
kalender seperti halnya di program Unix **cal**, dan menyediakan
fungsi-fungsi tambahan yang berguna yang terkait dengan kalender.
Secara bawaan, kalender-kalender ini telah ditentukan dimulai dari
hari Senin sebagai hari pertama dalam seminggu, dan Sabtu sebagai hari
terakhir (merupakan sistem yang dianut oleh Eropa). Gunakan
"setfirstweekday()" untuk mengatur hari pertama dalam seminggu ke hari
Sabtu (6) atau ke nama hari yang lain. Parameter-parameter yang
menentukan tanggal-tanggal diberikan dalam bentuk bilangan bulat.
Untuk fungsionalitas yang lain, lihat juga modul-modul "datetime" dan
"time".

Fungsi-fungsi dan kelas-kelas yang didefinisikan di modul ini
menggunakan kalender yang telah diidealkan, yaitu kalender Gregorian
yang digunakan saat ini yang rentang waktunya tak terbatas ke arah
masa depan dan masa lalu. Hal ini bersesuaian dengan definisi dari
kalender "proleptic Gregorian" di buku "Calendrical Calculation" oleh
Dershowitz dan Reingold, yang merupakan kalender dasar bagi semua
ragam komputasi. Tahun-tahun nol dan negatif diinterpretasikan sesuai
dengan standar ISO 8601. Tahun 0 adalah 1 SM, tahun -1 adalah 2 SM,
demikian seterusnya,

class calendar.Calendar(firstweekday=0)

   Creates a "Calendar" object. *firstweekday* is an integer
   specifying the first day of the week. "MONDAY" is "0" (the
   default), "SUNDAY" is "6".

   Suatu object "Calendar" menyediakan beberapa metode yang dapat
   digunakan untuk mempersiapkan data kalender yang akan digunakan
   untuk proses pemformatan setelahnya. Kelas ini tidak dapat
   melakukan penformatan dengan sendirinya. Proses penformatan
   merupakan tugas dari subkelas-subkelas di dalam kelas tersebut.

   "Calendar" instances have the following methods and attributes:

   firstweekday

      The first weekday as an integer (0--6).

      This property can also be set and read using "setfirstweekday()"
      and "getfirstweekday()" respectively.

   getfirstweekday()

      Return an "int" for the current first weekday (0--6).

      Identical to reading the "firstweekday" property.

   setfirstweekday(firstweekday)

      Set the first weekday to *firstweekday*, passed as an "int" (0--
      6)

      Identical to setting the "firstweekday" property.

   iterweekdays()

      Return an iterator for the week day numbers that will be used
      for one week.  The first value from the iterator will be the
      same as the value of the "firstweekday" property.

   itermonthdates(year, month)

      Memberikan keluaran suatu iterator untuk bulan *month* (1--12)
      dalam suatu tahun *year*. Iterator ini akan memberikan keluaran
      semua hari (berupa objek "datetime.date") dalam sebulan dan
      semua hari  sebelum dimulainya bulan tersebut dan sesudah
      berakhir bulan tersebut yang diperlukan untuk melengkapi 7 hari
      lengkap dalam sepekan.

   itermonthdays(year, month)

      Memberikan keluaran suatu iterator untuk bulan *month* dalam
      suatu tahun *year* serupa dengan "itermonthdates()", tetapi
      tidak dibatasi oleh rentang "datetime.date". Hari-hari yang
      diberikan berupa nomor-nomor tanggal dalam sebulan.  Untuk hari-
      hari diluar bulan yang ditentukan, nomor hari adalah "0".

   itermonthdays2(year, month)

      Memberikan keluaran suatu iterator untuk bulan *month* dalam
      suatu tahun *year* serupa dengan "itermonthdates()", tetapi
      tidak dibatasi oleh rentang "datetime.date". Hari-hari yang
      diberikan berupa tuples yang memuat nomor hari dalam sebulan dan
      nomor hari dalam seminggu.

   itermonthdays3(year, month)

      Memberikan keluaran suatu iterator untuk bulan *month* dalam
      suatu tahun *year* serupa dengan "itermonthdates()", tetapi
      tidak dibatasi oleh rentang "datetime.date". Hari-hari yang
      diberikan berupa tuples yang memuat nomor tahun, bulan, dan
      hari.

      Added in version 3.7.

   itermonthdays4(year, month)

      Memberikan keluaran suatu iterator untuk bulan *month* dalam
      suatu tahun *year* serupa dengan "itermonthdates()", tetapi
      tidak dibatasi oleh rentang "datetime.date". Hari-hari yang
      diberikan berupa tuples yang terdiri dari nomort tahun, bulan,
      hari, dan hari dalam sepekan.

      Added in version 3.7.

   monthdatescalendar(year, month)

      Memberikan keluaran berupa suatu list pekan-pekan dalam suatu
      bulan *month* di suatu tahun *year* sebagai hari-hari lengkap
      dalam sepekan.  Pekan-pekan adalah lists tujuh objek-object
      "datetime.date".

   monthdays2calendar(year, month)

      Memberikan keluaran berupa suatu list pekan-pekan dalam satu
      bulan *month* di suatu tahun *year* sebagai hari lengkap dalam
      sepekan. Pekan-pekan adalah lists tujuh tuples tanggal dan nomor
      hari dalam sepekan.

   monthdayscalendar(year, month)

      Memberikan keluaran berupa suatu list pekan-pekan dalam satu
      bulan *month* di suatu tahun *year* sebagai hari lengkap dalam
      sepekan. Pekan-pekan adalah lists tujuh nomor tanggal.

   yeardatescalendar(year, width=3)

      Memberikan keluaran data berdasarkan tahun yang telah ditentukan
      yang dapat digunakan sebagai input dalam proses penformatan.
      Nilai keluaran tersebut adalah suatu list bulan tersusun dalam
      baris-baris. Setiap baris memuat banyaknya *width* bulan
      (dipasang secara default di 3). Setiap bulan memuat antara 4
      sampai  6 pekan dan setiap pekan memuat 1--7 hari. Hari-hari
      merupakan objek "datetime.date".

   yeardays2calendar(year, width=3)

      Memberikan keluaran data yang berdasarkan tahun yang telah
      ditentukan yang dapat digunakan sebagai input dalam proses
      penformatan (serupa dengan "yeardatescalendar()"). Keluaran yang
      diberikan di dalam lists pekan berupa tuples yang memuat nomor-
      nomor hari dan nomor-nomor hari dalam sepekan. Nomor-nomor hari
      diluar bulan yang ditentukan dipasang pada nilai nol.

   yeardayscalendar(year, width=3)

      Memberikan keluaran data yang berdasarkan tahun yang telah
      ditentukan yang dapat digunakan sebagai input dalam proses
      penformatan (serupa dengan "yeardatescalendar()"). Keluaran yang
      diberikan di dalam lists pekan berupa nomor hari. Nomor hari
      diluar bulan yang ditentukan dipasang pada nilai nol.

class calendar.TextCalendar(firstweekday=0)

   Kelas ini digunakan untuk menbangkitkan kalender-kalender berformat
   teks biasa / berkas ASCII.

   Instanse-instanse "TextCalendar" memiliki metode-metode berikut:

   formatday(theday, weekday, width)

      Return a string representing a single day formatted with the
      given *width*. If *theday* is "0", return a string of spaces of
      the specified width, representing an empty day. The *weekday*
      parameter is unused.

   formatweek(theweek, w=0)

      Return a single week in a string with no newline. If *w* is
      provided, it 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)

      Return a string representing the name of a single weekday
      formatted to the specified *width*. The *weekday* parameter is
      an integer representing the day of the week, where "0" is Monday
      and "6" is Sunday.

   formatweekheader(width)

      Return a string containing the header row of weekday names,
      formatted with the given *width* for each column. The names
      depend on the locale settings and are padded to the specified
      width.

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

      Memberikan keluaran suatu kalender bulan dalam bentuk suatu
      string multi-baris. Jika nilai *w* diberikan, nilai ini akan
      menentukan lebar dari lajur-lajur tanggal, yang mana string akan
      disejajarkan rata tengah. Jika nilai *l* diberikan, nilai ini
      akan menentukan banyaknya baris yang digunakan untuk tiap pekan.
      Metode ini bergantung pada penentuan hari pertama dalam sepekan
      sebagaimana yang telah dipilih dalam constructor atau yang telah
      diatur dengan metode "setfirstweekday()".

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

      Return a string representing the month's name centered within
      the specified *width*. If *withyear* is "True", include the year
      in the output. The *theyear* and *themonth* parameters specify
      the year and month for the name to be formatted respectively.

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

      Mencetak suatu kalender bulan sebagaimana yang diberikan oleh
      "formatmonth()".

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

      Memberikan keluaran suatu *m*-lajur kalender setahun dalam
      bentuk string multi-baris. Parameter-parameter opsional *w*,
      *l*, dan *c* adalah lebar lajur tanggal, banyaknya baris tiap
      minggu, dan banyaknya spasi antara lajur-lajur bulan, berturut-
      turut. Metode ini bergantung pada penentuan hari pertama dalam
      sepekan sebagaimana yang telah dipilih dalam constructor atau
      yang telah diatur dengan metode "setfirstweekday()".  Tahun-
      tahun awal yang mana suatu kalender dapat dibangkitkan
      bergantung pada platform yang digunakan.

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

      Mencetak kalender untuk satu tahun penuh sebagaimana yang
      diberikan oleh "formatyear()".

class calendar.HTMLCalendar(firstweekday=0)

   Kelas ini dapat digunakan untuk membangkitkan kalender-kalender
   berformat HTML.

   Instanse-instanse "HTMLCalendar" memliki metode-metode berikut:

   formatmonth(theyear, themonth, withyear=True)

      Memberikan keluaran suatu kalender bulan dalam bentuk suatu
      tabel HTML. Jika nilai *withyear* adalah logika benar, tahun
      akan ditampilkan di bagian tajuk. Demikian sebaliknya hanya nama
      bulan yang ditampilkan.

   formatyear(theyear, width=3)

      Memberikan keluaran suatu kalender tahunan dalam bentuk suatu
      tabel HTML. Argumen *width* (nilai bawaan adalah 3) menentukan
      banyaknya bulan tiap baris.

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

      Memberikan keluaran suatu kalender tahunan dalam bentuk suatu
      halaman HTML lengkap. *width* (nilai bawaan adalah 3) menentukan
      banyaknya bulan tiap baris. *css* adalah nama untuk cascading
      style sheet yang digunakan. "None" dapat diberikan pada argumen
      css jika tidak ada style sheet yang digunakan. *encoding*
      menentukan pengodean yang digunakan untuk keluaran (nilai bawaan
      pada sistem adalah nilai bawaan pengodean ini).

   formatmonthname(theyear, themonth, withyear=True)

      Return a month name as an HTML table row. If *withyear* is true
      the year will be included in the row, otherwise just the month
      name will be used.

   "HTMLCalendar" memliki atribut-atribut berikut yang dapat ditimpa
   atribut baru dengan tujuan untuk mengubahsuaikan kelas-kelas CSS
   yang di gunakan di kelas kalendar:

   cssclasses

      Suatu list kelas-kelas CSS yang digunakan untuk tiap hari-hari
      dalam sepekan. List kelas bawaan berupa:

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

      Beberapa corak-corak dapat ditambahkan untuk penformatan
      tampilan tiap hari:

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

      Perlu diperhatikan bahwa panjang dari list ini haruslah tujuh
      item.

   cssclass_noday

      Kelas CSS untuk hari-hari dalam sepekan yang muncul sebelum dan
      sesudah bulan yang dipilih.

      Added in version 3.7.

   cssclasses_weekday_head

      Suatu list kelas-kelas CSS yang digunakan untuk hari-hari dalam
      sepekan di baris tajuk. Nilai bawaan untuk atribut ini adalah
      sama dengan atribut "cssclasses".

      Added in version 3.7.

   cssclass_month_head

      Kelas CSS untuk bagian atas penamaan bulan (digunakan oleh
      metode "formatmonthname()"). Nilai bawaan untuk atribut ini
      adalah ""month"".

      Added in version 3.7.

   cssclass_month

      Kelas CSS untuk seluruh tabel bulan (digunakan oleh metode
      "formatmonth()"). Nilai bawaan untuk atribut ini adalah
      ""month"".

      Added in version 3.7.

   cssclass_year

      Kelas CSS untuk seluruh tabel-tabel bulan dalam setahun
      (digunakan oleh metode "formatyear()"). Nilai bawaan untuk
      atribut ini adalah ""year"".

      Added in version 3.7.

   cssclass_year_head

      Kelas CSS kepala tabel untuk seluruh bulan dalam setahun
      (digunakan oleh "formatyear()"). Nilai bawaan untuk atribut ini
      adalah ""year"".

      Added in version 3.7.

   Perlu diperhatikan meskipun penamaan atribut-atribut kelas yang
   dijelaskan di atas bersifat tunggal (sebagai contoh
   "cssclass_month" "cssclass_noday"), pengguna dapat mengganti kelas
   CSS tunggal dengan suatu list kelas-kelas CSS yang saling terpisah
   oleh spasi, sebagai contoh:

      "text-bold text-red"

   Berikut ini adalah suatu contoh bagaimana "HTMLCalendar" dapat
   diubahsuaikan:

      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)

   This subclass of "TextCalendar" can be passed a locale name in the
   constructor and will return month and weekday names in the
   specified locale.

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

   This subclass of "HTMLCalendar" can be passed a locale name in the
   constructor and will return month and weekday names in the
   specified locale.

Catatan:

  The constructor, "formatweekday()" and "formatmonthname()" methods
  of these two classes temporarily change the "LC_TIME" locale to the
  given *locale*. Because the current locale is a process-wide
  setting, they are not thread-safe.

Untuk kalender-kalender dengan teks sederhana, modul ini menyediakan
fungsi-fungsi berikut.

calendar.setfirstweekday(weekday)

   Menetapkan hari dimulainya hitungan minggu ("0" adalah Senin, "6"
   adalah Minggu). Nilai-nilai  "MONDAY", "TUESDAY", "WEDNESDAY",
   "THURSDAY", "FRIDAY", "SATURDAY", dan "SUNDAY" disediakan secara
   bawaan demi kenyamanan. Sebagai contoh, untuk mengatur hari
   dimulainya hitungan minggu di hari Minggu:

      import calendar
      calendar.setfirstweekday(calendar.SUNDAY)

calendar.firstweekday()

   Memberikan keluaran-keluaran pengaturan saat ini untuk hari
   dimulainya hitungan sepekan.

calendar.isleap(year)

   Memberikan keluaran-keluaran "True" jika *year* adalah suatu tahun
   kabisat, sebaliknya "False".

calendar.leapdays(y1, y2)

   Memberikan keluaran banyaknya tahun-tahun kabisat dalam rentang
   dari *y1* sampai *y2* (ekslusif, batas rentang tidak ikut
   diperhitungkan), dengan *y1* dan *y2* adalah angka tahun.

   Fungsi ini berlaku untuk rentang tahun sampai satu abad.

calendar.weekday(year, month, day)

   Memberikan keluaran hari dalam sepekan  ("0" adalah Senin) untuk
   *year* ("1970"--...), *month* ("1"--"12"), *day* ("1"--"31").

calendar.weekheader(n)

   Memberikan keluaran suatu tajuk yang memuat singkatan nama-nama
   hari dalam sepekan. *n* mengatur lebar dari karakter-karakter tiap
   nama-nama hari dalam sepekan.

calendar.monthrange(year, month)

   Memberikan keluaran-keluaran hari dari tanggal pertama di bulan
   yang dipilih dan banyaknya hari dalam bulan tersebut, dengan *year*
   dan *month* sebagai argumen yand diisi oleh pengguna.

calendar.monthcalendar(year, month)

   Memberikan keluaran-keluaran suatu matriks yang mewakili suatu
   kalendar bulan. Tiap baris mewakili suatu pekan; hari-hari diluar
   bulan yang dipilih dinyatakan oleh nol. Tiap pekan dimulai dengan
   Senin kecuali "setfirstweekday()" telah diatur untuk dimulai dengan
   hari yang lain.

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

   Mencetak suatu kalender bulan sebagaimana yang diberikan oleh
   "month()".

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

   Returns a month's calendar in a multi-line string using the
   "formatmonth()" of the "TextCalendar" class.

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

   Mencetak kalender untuk satu tahun penuh sebagaimana yang diberikan
   oleh fungsi "calendar()".

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

   Returns a 3-column calendar for an entire year as a multi-line
   string using the "formatyear()" of the "TextCalendar" class.

calendar.timegm(tuple)

   Fungsi yang tak terkait dengan fungsi lain tapi berguna yang
   menggunakan masukan suatu tuple waktu seperti yang diberikan oleh
   keluaran fungsi "gmtime()" dalam modul "time", dan memberikan
   keluaran yang bersesuaian dengan nilai cap waktu Unix, dengan
   mengasumsikan zaman dimulai dari tahun 1970, dan penyandian POSIX.
   Secara fakta, fungsi "time.gmtime()" dan "timegm()" adalah saling
   invers satu sama lain.

Module "calendar" mengekspor data atribut-atribut berikut:

calendar.day_name

   A sequence that represents the days of the week in the current
   locale, where Monday is day number 0.

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

calendar.day_abbr

   A sequence that represents the abbreviated days of the week in the
   current locale, where Mon is day number 0.

   >>> 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

   Aliases for the days of the week, where "MONDAY" is "0" and
   "SUNDAY" is "6".

   Added in version 3.12.

class calendar.Day

   Enumeration defining days of the week as integer constants. The
   members of this enumeration are exported to the module scope as
   "MONDAY" through "SUNDAY".

   Added in version 3.12.

calendar.month_name

   A sequence that represents the months of the year in the current
   locale.  This follows normal convention of January being month
   number 1, so it has a length of 13 and "month_name[0]" is the empty
   string.

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

calendar.month_abbr

   A sequence that represents the abbreviated months of the year in
   the current locale.  This follows normal convention of January
   being month number 1, so it has a length of 13 and  "month_abbr[0]"
   is the empty string.

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

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

   Aliases for the months of the year, where "JANUARY" is "1" and
   "DECEMBER" is "12".

   Added in version 3.12.

class calendar.Month

   Enumeration defining months of the year as integer constants. The
   members of this enumeration are exported to the module scope as
   "JANUARY" through "DECEMBER".

   Added in version 3.12.

The "calendar" module defines the following exceptions:

exception calendar.IllegalMonthError(month)

   A subclass of "ValueError", raised when the given month number is
   outside of the range 1-12 (inclusive).

   month

      The invalid month number.

exception calendar.IllegalWeekdayError(weekday)

   A subclass of "ValueError", raised when the given weekday number is
   outside of the range 0-6 (inclusive).

   weekday

      The invalid weekday number.

Lihat juga:

  Modul "datetime"
     Antarmuka berorientasi objek untuk penanggalan dan waktu dengan
     fungsionalitas mirip modul "time".

  Modul "time"
     Fungsi-fungsi waktu tingkat rendah.


Command-Line Usage
==================

Added in version 2.5.

The "calendar" module can be executed as a script from the command
line to interactively print a calendar.

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

For example, to print a calendar for the year 2000:

   $ 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

The following options are accepted:

--help, -h

   Show the help message and exit.

--locale LOCALE, -L LOCALE

   The locale to use for month and weekday names. Defaults to English.

--encoding ENCODING, -e ENCODING

   The encoding to use for output. "--encoding" is required if "--
   locale" is set.

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

   Print the calendar to the terminal as text, or as an HTML document.

year

   The year to print the calendar for. Must be a number between 1 and
   9999. Defaults to the current year.

month

   The month of the specified "year" to print the calendar for. Must
   be a number between 1 and 12, and may only be used in text mode.
   Defaults to printing a calendar for the full year.

*Text-mode options:*

--width WIDTH, -w WIDTH

   The width of the date column in terminal columns. The date is
   printed centred in the column. Any value lower than 2 is ignored.
   Defaults to 2.

--lines LINES, -l LINES

   The number of lines for each week in terminal rows. The date is
   printed top-aligned. Any value lower than 1 is ignored. Defaults to
   1.

--spacing SPACING, -s SPACING

   The space between months in columns. Any value lower than 2 is
   ignored. Defaults to 6.

--months MONTHS, -m MONTHS

   The number of months printed per row. Defaults to 3.

*HTML-mode options:*

--css CSS, -c CSS

   The path of a CSS stylesheet to use for the calendar. This must
   either be relative to the generated HTML, or an absolute HTTP or
   "file:///" URL.
