8.2。 カレンダー —一般的なカレンダー関連の機能
ソースコード: :source: `Lib / calendar.py`
このモジュールを使用すると、Unix cal プログラムのようなカレンダーを出力でき、カレンダーに関連する追加の便利な機能を提供します。 デフォルトでは、これらのカレンダーの週の最初の日は月曜日、最後の日は日曜日です(ヨーロッパの条約)。 setfirstweekday()を使用して、週の最初の日を日曜日(6)またはその他の平日に設定します。 日付を指定するパラメーターは整数として指定されます。 関連する機能については、 datetime および time モジュールも参照してください。
これらの関数とクラスのほとんどは、理想化されたカレンダーを使用する datetime モジュールに依存しています。現在のグレゴリオ暦は、両方向に無期限に拡張されています。 これは、ダーショウィッツとレインゴールドの著書「カレンダー計算」の「先発グレゴリオ暦」の定義と一致します。このカレンダーは、すべての計算の基本カレンダーです。
- class calendar.Calendar([firstweekday])
Calendar オブジェクトを作成します。 firstweekday は、週の最初の曜日を指定する整数です。
0
は月曜日(デフォルト)、6
は日曜日です。Calendar オブジェクトは、フォーマット用のカレンダーデータを準備するために使用できるいくつかのメソッドを提供します。 このクラスは、それ自体はフォーマットを行いません。 これはサブクラスの仕事です。
バージョン2.5の新機能。
Calendar インスタンスには次のメソッドがあります。
- iterweekdays()
1週間使用される曜日番号のイテレータを返します。 イテレータからの最初の値は、 firstweekday プロパティの値と同じになります。
- itermonthdates(year, month)
年年の月月(1–12)のイテレータを返します。 このイテレータは、その月のすべての日( datetime.date オブジェクトとして)と、月の始まりの前または月末の後の、完全な週を取得するために必要なすべての日を返します。
- itermonthdays2(year, month)
itermonthdates()と同様に、年年の月月のイテレータを返します。 返される日は、日番号と週日番号で構成されるタプルになります。
- itermonthdays(year, month)
itermonthdates()と同様に、年年の月月のイテレータを返します。 返される日数は単に日数になります。
- monthdatescalendar(year, month)
年の月月の週のリストを完全な週として返します。 週は、7つの datetime.date オブジェクトのリストです。
- monthdays2calendar(year, month)
年の月月の週のリストを完全な週として返します。 週は、日番号と平日番号の7つのタプルのリストです。
- monthdayscalendar(year, month)
年の月月の週のリストを完全な週として返します。 週は7日間の数字のリストです。
- yeardatescalendar(year[, width])
フォーマットの準備ができている指定された年のデータを返します。 戻り値は月の行のリストです。 各月の行には、最大 width か月(デフォルトは3)が含まれます。 毎月は4〜6週間で、毎週は1〜7日です。 日は datetime.date オブジェクトです。
- yeardays2calendar(year[, width])
フォーマットの準備ができている指定された年のデータを返します( yeardatescalendar()と同様)。 週リストのエントリは、日番号と平日番号のタプルです。 今月以外の日数はゼロです。
- yeardayscalendar(year[, width])
フォーマットの準備ができている指定された年のデータを返します( yeardatescalendar()と同様)。 週リストのエントリは日番号です。 今月以外の日数はゼロです。
- class calendar.TextCalendar([firstweekday])
このクラスは、プレーンテキストのカレンダーを生成するために使用できます。
バージョン2.5の新機能。
TextCalendar インスタンスには次のメソッドがあります。
- formatmonth(theyear, themonth[, w[, l]])
月のカレンダーを複数行の文字列で返します。 w が指定されている場合、中央に配置される日付列の幅を指定します。 l を指定すると、毎週使用する行数が指定されます。 コンストラクターで指定された、または setfirstweekday()メソッドによって設定された最初の平日に依存します。
- prmonth(theyear, themonth[, w[, l]])
formatmonth()によって返される月のカレンダーを印刷します。
- formatyear(theyear[, w[, l[, c[, m]]]])
1年間の m 列のカレンダーを複数行の文字列として返します。 オプションのパラメータ w 、 l 、および c は、それぞれ日付列の幅、1週間あたりの行数、および月の列間のスペースの数です。 コンストラクターで指定された、または setfirstweekday()メソッドによって設定された最初の平日に依存します。 カレンダーを生成できる最も早い年は、プラットフォームによって異なります。
- pryear(theyear[, w[, l[, c[, m]]]])
formatyear()によって返されるように、年間のカレンダーを印刷します。
- class calendar.HTMLCalendar([firstweekday])
このクラスは、HTMLカレンダーを生成するために使用できます。
バージョン2.5の新機能。
HTMLCalendar インスタンスには次のメソッドがあります。
- formatmonth(theyear, themonth[, withyear])
月のカレンダーをHTMLテーブルとして返します。 withyear がtrueの場合、年がヘッダーに含まれます。それ以外の場合は、月の名前のみが使用されます。
- formatyear(theyear[, width])
年のカレンダーをHTMLテーブルとして返します。 width (デフォルトは3)は、行ごとの月数を指定します。
- formatyearpage(theyear[, width[, css[, encoding]]])
年のカレンダーを完全なHTMLページとして返します。 width (デフォルトは3)は、行ごとの月数を指定します。 css は、使用するカスケードスタイルシートの名前です。 スタイルシートを使用しない場合は、なしを渡すことができます。 encoding は、出力に使用されるエンコーディングを指定します(デフォルトではシステムのデフォルトエンコーディングになります)。
- class calendar.LocaleTextCalendar([firstweekday[, locale]])
TextCalendar のこのサブクラスは、コンストラクターでロケール名を渡すことができ、指定されたロケールで月と曜日の名前を返します。 このロケールにエンコーディングが含まれている場合、月と曜日の名前を含むすべての文字列がUnicodeとして返されます。
バージョン2.5の新機能。
- class calendar.LocaleHTMLCalendar([firstweekday[, locale]])
HTMLCalendar のこのサブクラスは、コンストラクターでロケール名を渡すことができ、指定されたロケールで月と曜日の名前を返します。 このロケールにエンコーディングが含まれている場合、月と曜日の名前を含むすべての文字列がUnicodeとして返されます。
バージョン2.5の新機能。
ノート
これら2つのクラスのformatweekday()
メソッドとformatmonthname()
メソッドは、現在のロケールを指定されたロケールに一時的に変更します。 現在のロケールはプロセス全体の設定であるため、スレッドセーフではありません。
単純なテキストカレンダーの場合、このモジュールは次の機能を提供します。
- calendar.setfirstweekday(weekday)
毎週開始する平日(
0
は月曜日、6
は日曜日)を設定します。 値MONDAY
、TUESDAY
、WEDNESDAY
、THURSDAY
、FRIDAY
、SATURDAY
、および [X85X ]は便宜上提供されています。 たとえば、最初の平日を日曜日に設定するには、次のようにします。import calendar calendar.setfirstweekday(calendar.SUNDAY)
バージョン2.0の新機能。
- calendar.firstweekday()
毎週開始する平日の現在の設定を返します。
バージョン2.0の新機能。
- calendar.leapdays(y1, y2)
y1 から y2 (排他的)の範囲のうるう年数を返します。ここで、 y1 および y2 は年です。
バージョン2.0での変更:この関数は、Python1.5.2での1世紀にわたる変更にまたがる範囲では機能しませんでした。
- calendar.weekday(year, month, day)
- 年(
1970
–…)、月(1
–)の曜日(0
は月曜日)を返します12
)、日(1
–31
)。
- calendar.weekheader(n)
- 省略された平日名を含むヘッダーを返します。 n は、平日の1文字の幅を指定します。
- calendar.monthrange(year, month)
- 指定された年および月について、月の最初の日の平日と月の日数を返します。
- calendar.monthcalendar(year, month)
- 月のカレンダーを表す行列を返します。 各行は1週間を表します。 ゼロで表される月a以外の日。 setfirstweekday()で設定されていない限り、毎週月曜日から始まります。
- calendar.prmonth(theyear, themonth[, w[, l]])
- month()によって返される月のカレンダーを印刷します。
- calendar.month(theyear, themonth[, w[, l]])
TextCalendar クラスの
formatmonth()
を使用して、月のカレンダーを複数行の文字列で返します。バージョン2.0の新機能。
- calendar.prcal(year[, w[, l[c]]])
- calendar()によって返されるように、年間のカレンダーを印刷します。
- calendar.calendar(year[, w[, l[c]]])
TextCalendar クラスの
formatyear()
を使用して、1年間の3列のカレンダーを複数行の文字列として返します。バージョン2.0の新機能。
- calendar.timegm(tuple)
time モジュールの gmtime()関数によって返されるような時間タプルを取り、1970年のエポックを想定して、対応するUnixタイムスタンプ値を返す、無関係ですが便利な関数。およびPOSIXエンコーディング。 実際、 time.gmtime()と timegm()は互いに逆です。
バージョン2.0の新機能。
calendar モジュールは、次のデータ属性をエクスポートします。
- calendar.day_name
- 現在のロケールの曜日を表す配列。
- calendar.day_abbr
- 現在のロケールで省略された曜日を表す配列。
- calendar.month_name
- 現在のロケールでの月を表す配列。 これは、1月が月番号1であるという通常の規則に従うため、長さは13で、
month_name[0]
は空の文字列です。
- calendar.month_abbr
- 現在のロケールで省略された月を表す配列。 これは、1月が月番号1であるという通常の規則に従うため、長さは13で、
month_abbr[0]
は空の文字列です。