8.2. カレンダー—一般的なカレンダー関連関数—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/library/calendar
移動先:案内検索

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 列のカレンダーを複数行の文字列として返します。 オプションのパラメータ wl 、および 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は日曜日)を設定します。 値MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAY、および [X85X ]は便宜上提供されています。 たとえば、最初の平日を日曜日に設定するには、次のようにします。

import calendar
calendar.setfirstweekday(calendar.SUNDAY)

バージョン2.0の新機能。

calendar.firstweekday()

毎週開始する平日の現在の設定を返します。

バージョン2.0の新機能。

calendar.isleap(year)
year がうるう年の場合は True を返し、それ以外の場合は False を返します。
calendar.leapdays(y1, y2)

y1 から y2 (排他的)の範囲のうるう年数を返します。ここで、 y1 および y2 は年です。

バージョン2.0での変更:この関数は、Python1.5.2での1世紀にわたる変更にまたがる範囲では機能しませんでした。

calendar.weekday(year, month, day)
1970 –…)、1 –)の曜日(0は月曜日)を返します12)、131)。
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]は空の文字列です。

も参照してください

モジュール日時
time モジュールと同様の機能を備えた日付と時刻へのオブジェクト指向インターフェース。
モジュール時間
低レベルの時間関連関数。