Python Calendarモジュールの紹介


ã¯ã˜ã‚ã«

Python ã«ã¯ Calendar ã¨ã„ã†åå‰ã®çµ„ã¿è¾¼ã¿ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ãŒã‚りã€ã•ã¾ã–ã¾ãªã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼æ“作をサãƒãƒ¼ãƒˆã™ã‚‹ä¾¿åˆ©ãªã‚¯ãƒ©ã‚¹ã‚„関数ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚デフォルトã§ã¯ã€ Calendar モジュールã¯ã‚°ãƒ¬ã‚´ãƒªã‚ªæš¦ã«å¾“ã£ã¦ãŠã‚Šã€æœˆæ›œæ—¥ãŒé€±ã®æœ€åˆã®æ—¥ (0) ã§ã€æ—¥æ›œæ—¥ãŒé€±ã®æœ€å¾Œã®æ—¥ (6) ã«ãªã£ã¦ã„ã¾ã™ã€‚

Python ã§ã¯ã€datetime 㨠time モジュールも低レベルã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼é–¢é€£ã®æ©Ÿèƒ½ã‚’æä¾›ã—ã¾ã™ã€‚ã“れらã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«åŠ ãˆã¦ã€Calendarモジュールã¯ã€ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã®è¡¨ç¤ºã¨æ“作ã«é–¢é€£ã™ã‚‹å¿…é ˆã®æ©Ÿèƒ½ã‚’æä¾›ã—ã¾ã™ã€‚

カレンダーを表示ã—ãŸã‚Šæ“作ã—ãŸã‚Šã™ã‚‹ãŸã‚ã«ã€ Calendar モジュールã«ã¯ Calendarã€TextCalendarã€HTMLCalendar ã¨ã„ㆠ3 ã¤ã®é‡è¦ãªã‚¯ãƒ©ã‚¹ãŒç”¨æ„ã•れã¦ã„ã¾ã™ã€‚ã“ã®è¨˜äº‹ã§ã¯ã€ã“れらã®ã‚¯ãƒ©ã‚¹ãŒã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã«é–¢é€£ã™ã‚‹ã•ã¾ã–ã¾ãªæ©Ÿèƒ½ã®å®Ÿè£…ã«ã©ã®ã‚ˆã†ã«å½¹ç«‹ã¤ã‹ã‚’見ã¦ã„ãã¾ã™ã€‚

Calendarãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã®æ©Ÿèƒ½

Calendar モジュールを使用ã™ã‚‹ã«ã¯ã€ã¾ãšãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã‚’インãƒãƒ¼ãƒˆã™ã‚‹å¿…è¦ãŒã‚りã¾ã™ã€‚

import calendar


ã“ã®ãƒ¢ã‚¸ãƒ¥ãƒ¼ãƒ«ã«å«ã¾ã‚Œã‚‹ä¾¿åˆ©ãªé–¢æ•°ã®ãƒªã‚¹ãƒˆã‚’見ã¦ã¿ã¾ã—ょã†ã€‚

ç‰¹å®šã®æœˆã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹

以下ã®é–¢æ•°ã‚’使用ã™ã‚‹ã¨ã€ç‰¹å®šã®æœˆã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

calendar.month(yyyy, m, w, l)


ã“ã®é–¢æ•°ã«æ¸¡ã•れる引数ã¯ã€å¹´ (yyyy)ã€æœˆ (m)ã€æ—¥ä»˜åˆ—ã®å¹… (w)ã€1週間ã®è¡Œæ•° (l) ã§ã™ã€‚例ãˆã°ã€ã“ã®é–¢æ•°ã‚’使ã£ã¦ã€2019å¹´3月ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã—ã¦ã¿ã¾ã—ょã†ã€‚

print ("Calendar of March 2019 is:")
print (calendar.month(2019, 3, 2, 1))


を出力ã—ã¾ã™ã€‚

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


特定ã®å¹´ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹

以下ã®é–¢æ•°ã‚’使用ã™ã‚‹ã¨ã€1年分ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

calendar.calendar(yyyy, w, l, c, m)


上記ã®é–¢æ•°ã¯ã€å¼•æ•°ã§æŒ‡å®šã•れãŸå¹´ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®é–¢æ•°ã«æ¸¡ã•れる引数ã¯ã€å¹´ (yyyy), 日付ã®åˆ—ã®å¹… (w), 1週間ã®è¡Œæ•° (l), 月ã®åˆ—ã®é–“ã®ã‚¹ãƒšãƒ¼ã‚¹ (c), åˆ—ã®æ•° (m) ã§ã‚る。

例ãˆã°ã€2019å¹´ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹ã«ã¯ã€æ¬¡ã®ã‚ˆã†ã«ã—ã¾ã™ã€‚

print(calendar.calendar(2019, 2, 2, 6, 3))


ã¨å‡ºåŠ›ã—ã¾ã™ã€‚

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  3  4  5  6                   1  2  3                   1  2  3


7  8  9 10 11 12 13       4  5  6  7  8  9 10       4  5  6  7  8  9 10


14 15 16 17 18 19 20      11 12 13 14 15 16 17      11 12 13 14 15 16 17


21 22 23 24 25 26 27      18 19 20 21 22 23 24      18 19 20 21 22 23 24


28 29 30 31               25 26 27 28               25 26 27 28 29 30 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  3  4  5  6  7             1  2  3  4  5                      1  2


8  9 10 11 12 13 14       6  7  8  9 10 11 12       3  4  5  6  7  8  9


15 16 17 18 19 20 21      13 14 15 16 17 18 19      10 11 12 13 14 15 16


22 23 24 25 26 27 28      20 21 22 23 24 25 26      17 18 19 20 21 22 23


29 30                     27 28 29 30 31            24 25 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  3  4  5  6  7                1  2  3  4                         1


8  9 10 11 12 13 14       5  6  7  8  9 10 11       2  3  4  5  6  7  8


15 16 17 18 19 20 21      12 13 14 15 16 17 18       9 10 11 12 13 14 15


22 23 24 25 26 27 28      19 20 21 22 23 24 25      16 17 18 19 20 21 22


29 30 31                  26 27 28 29 30 31         23 24 25 26 27 28 29


30


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  2  3  4  5  6                   1  2  3                         1


7  8  9 10 11 12 13       4  5  6  7  8  9 10       2  3  4  5  6  7  8


14 15 16 17 18 19 20      11 12 13 14 15 16 17       9 10 11 12 13 14 15


21 22 23 24 25 26 27      18 19 20 21 22 23 24      16 17 18 19 20 21 22


28 29 30 31               25 26 27 28 29 30         23 24 25 26 27 28 29


30 31


Note: “print” ã®ä»£ã‚りã«ã€ calendar.prmonth() 㨠calendar.pryear() 関数を使用ã—ã¦ã€æœˆã¨å¹´ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚ã“れらã®é–¢æ•°ã¯ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ã«å‡ºåŠ›ã‚’è¡¨ç¤ºã—ã¾ã™ã€‚

ã†ã‚‹ã†å¹´ã®ãƒã‚§ãƒƒã‚¯

ã‚ã‚‹å¹´ãŒã†ã‚‹ã†å¹´ã‹ã©ã†ã‹ã‚’調ã¹ã‚‹ã«ã¯ã€ isleap() 関数を使用ã—ã¾ã™ã€‚ã“ã®é–¢æ•°ã®å¼•æ•°ã¨ã—ã¦å¹´ã‚’渡ã—ã€ãã®å¹´ãŒã†ã‚‹ã†å¹´ã§ã‚れ㰠True ã‚’ã€ã†ã‚‹ã†å¹´ã§ãªã‘れ㰠False ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®é–¢æ•°ã‚’使ã£ã¦ã€2016å¹´ãŒã†ã‚‹ã†å¹´ã‹ã©ã†ã‹èª¿ã¹ã¦ã¿ã¾ã—ょã†ã€‚

calendar.isleap(2016)


出力ã—ã¾ã™ã€‚

True


範囲内ã®ã†ã‚‹ã†å¹´ã®æ•°

以下ã®é–¢æ•°ã®å¼•æ•°ã§æŒ‡å®šã•れãŸç¯„囲ã®ã†ã‚‹ã†å¹´ã®æ•°ã‚’調ã¹ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚

calendar.leapdays(year1, year2)


ã“ã®é–¢æ•°ã«æ¸¡ã•れる引数ã¯ã€æœ‰åйãª2ã¤ã®å¹´ã®å€¤ã§ã™ã€‚ã“ã®é–¢æ•°ã¯ã€ãれらã®å¹´ã®é–“ã«ã‚ã‚‹ã†ã‚‹ã†å¹´ã®æ•°ã‚’è¿”ã—ã¾ã™ã€‚

例

calendar.leapdays(2000, 2017)


出力

5


見ã¦ã®é€šã‚Šã€2000å¹´ã‹ã‚‰2017å¹´ã®é–“ã«ã¯5ã¤ã®ã†ã‚‹ã†å¹´ãŒã‚りã€ã—ãŸãŒã£ã¦å‡ºåŠ›ã¯5ã¨ãªã‚‹ã€‚

曜日を返ã™

weekday` メソッドã¯ã€å¹´ã€æœˆã€æ—¥ã®3ã¤ã®å¼•æ•°ã‚’å–りã¾ã™ã€‚ã“ã®é–¢æ•°ã¯ã€æœˆæ›œæ—¥ã‚’0ã€æ—¥æ›œæ—¥ã‚’6ã¨ã—ã¦ã€ãã®é€±ã®æ›œæ—¥ã‚’è¿”ã—ã¾ã™ã€‚ ãŸã¨ãˆã°

calendar.weekday(2019, 3, 21)


出力ã¯

3


見ã¦ã®é€šã‚Šã€ã“ã®é–¢æ•°ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å€¤ã€Œ3ã€ã€ã¤ã¾ã‚Šã€Œæœ¨æ›œæ—¥ã€ã‚’è¿”ã™ã€‚

曜日åã®ç•¥ç§°å–å¾—ã«ã¤ã„ã¦

関数 weekheader ã¯å¼•æ•° n ã‚’å—ã‘å–りã€ç‰¹å®šã®æ›œæ—¥åã®æ–‡å­—数を指定ã—ã¦ã€æ›œæ—¥åã‚’çœç•¥ã—ãŸãƒ˜ãƒƒãƒ€ã‚’è¿”ã—ã¾ã™ã€‚

例ãˆã°

print (calendar.weekheader(2))


出力

Mo Tu We Th Fr Sa Su


åŒæ§˜ã«

print (calendar.weekheader(3))


を出力ã™ã‚‹ã€‚

Mon Tue Wed Thu Fri Sat Sun


æœˆé–“ã®æ—¥æ•°å–å¾—

monthrange` 関数㯠2 ã¤ã®å¼•æ•°ã‚’ã¨ã‚Šã¾ã™: year 㨠month ã§ã™ã€‚ã“ã®é–¢æ•°ã¯ã€ãã®æœˆãŒå§‹ã¾ã‚‹æ›œæ—¥ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ã€ãã®æœˆã®æ—¥æ•°ã‚’å«ã‚€ã‚¿ãƒ—ルを返ã—ã¾ã™ã€‚

例ãˆã°

print (calendar.monthrange(1983, 12))


出力

{3,31}


1983å¹´12月ã®åˆæ—¥ã¯æœ¨æ›œæ—¥ãªã®ã§ã€ã“ã®é–¢æ•°ã¯ã‚¿ãƒ—ãƒ«ã®æœ€åˆã®è¦ç´ ã¨ã—ã¦æœ¨æ›œæ—¥ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å€¤ã‚’è¿”ã—ã€ãれãŒ12æœˆã®æ—¥æ•°ã§ã‚ã‚‹ã“ã¨ã‹ã‚‰31ã‚’è¿”ã—ã¾ã™ã€‚

月å˜ä½ã§é€±å˜ä½ã§å–å¾—

monthcalendar` 関数㯠2 ã¤ã®å¼•æ•°: å¹´ã¨æœˆ ã‚’å—ã‘å–りã€å„行ãŒãã®æœˆã®é€±ã‚’表ã™è¡Œåˆ—ã‚’è¿”ã—ã¾ã™ã€‚

例ãˆã°

print(calendar.monthcalendar(1983, 11))


出力

[[0,1,2,3,4,5,6], [7,8,9,10,11,12,13], [14,15,16,17,18,19,20], [21,22,23,24,25,26,27], [28,19,30,0,0,0]]


見ã¦ã®é€šã‚Šã€å„週ã®é…åˆ—ã¯æœˆæ›œæ—¥ã‹ã‚‰å§‹ã¾ã‚Šã€ãã®æœˆä»¥å¤–ã®æ—¥ã¯ã‚¼ãƒ­ã§è¡¨ã•れã¾ã™ã€‚ã¤ã¾ã‚Šã€æœ€åˆã®é…åˆ—ã¯æœˆã®åˆæ—¥ãŒç«æ›œæ—¥ã§ã‚ã‚‹ã“ã¨ã‚’表ã—ã¦ã„ã¾ã™ã€‚

åˆæœŸè¨­å®šã®å¤‰æ›´

カレンダーã®ãƒ‡ãƒ•ォルトã®è¨­å®šã¯ã€å¿…è¦ã«å¿œã˜ã¦å¤‰æ›´ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚例ãˆã°ã€æ¬¡ã®ã‚¹ã‚¯ãƒªãƒ—トã§ã¯ã€æœˆæ›œæ—¥ã‚’週ã®åˆã‚ã®æ›œæ—¥ã¨ã—ã¦è¨­å®šã—ã¾ã™ã€‚

class calendar.calendar(firstweekday=0)


デフォルトã§ã¯ã€ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã¯ãƒ¨ãƒ¼ãƒ­ãƒƒãƒ‘ã®æ…£ç¿’ã«å¾“ã£ã¦ã€æœˆæ›œæ—¥ãŒé€±ã®åˆã‚ã®æ—¥ã€æ—¥æ›œæ—¥ãŒé€±ã®çµ‚ã‚ã‚Šã®æ—¥ã«ãªã£ã¦ã„ã¾ã™ã€‚ã¾ãŸã€1月ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å€¤1ã€12月ã¯ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹å€¤12ã¨ãªã‚‹ã€‚

Calendar クラスã®ä¾¿åˆ©ãªãƒ¡ã‚½ãƒƒãƒ‰

カレンダークラスã®ä¾¿åˆ©ãªãƒ¡ã‚½ãƒƒãƒ‰ã‚’紹介ã—ã¾ã™ã€‚

iterweekdays() メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ä¸€é€±é–“ã®æ›œæ—¥ã‚’表ã™ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã®ãƒªã‚¹ãƒˆã‚’å«ã‚€ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚

ãŸã¨ãˆã°

import calendar


c = calendar.Calendar()
for i in c.iterweekdays():
    print (i, end=" ")


出力

0 1 2 3 4 5 6


itermonthdates() メソッド

itermonthdates()` 㯠2 ã¤ã®å¼•æ•°ã‚’ã¨ã‚Šã¾ã™: å¹´ã¨æœˆã§ã™ã€‚ã“ã®é–¢æ•°ã¯ä¸Žãˆã‚‰ã‚ŒãŸæœˆã®ã™ã¹ã¦ã®æ—¥ã®ã‚¤ãƒ†ãƒ¬ãƒ¼ã‚¿ã‚’è¿”ã—ã¾ã™ã€‚ã¾ãŸã€å®Œå…¨ãªé€±ã‚’å¾—ã‚‹ãŸã‚ã«å¿…è¦ãªã€æœˆã®åˆã‚ã‹ã‚‰çµ‚ã‚りã¾ã§ã®ã™ã¹ã¦ã®æ—¥ ãŒè¡¨ç¤ºã•れã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.itermonthdates (2019, 1):
    print (i, end=" ")


出力

2018-12-31 2019-01-01 2019-01-02 2019-01-03 ..............2019-02-03


itermonthdays() メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ itermonthdates メソッドã¨ä¼¼ã¦ã„ã¾ã™ãŒã€æ—¥æ•°ã ã‘ã‚’è¿”ã—ã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.itermonthdays (2019, 1):
    print (i, end=" ")


出力

0 1 2 3 4 5 6........ 31 0 0 0


見ã¦ã‚ã‹ã‚‹ã‚ˆã†ã«ã€å®Œå…¨ãªé€±ã‚’å¾—ã‚‹ãŸã‚ã«ã€æœˆã®åˆã‚ã‹ã‚‰çµ‚ã‚りã¾ã§ã®ã™ã¹ã¦ã®æ—¥ãŒ “0” ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚

itermonthdays2() メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€æ›œæ—¥ã¨æ—¥æ•°ã‹ã‚‰ãªã‚‹ã‚¿ãƒ—ルを表示ã—ã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.itermonthdays2 (2019, 1):
    print (i, end=" ")


出力

(0,0) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6) (7,0) (8,1) (9,2) ...........


itermonthdays3() メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ itermonthdays3() メソッドã¨ã»ã¨ã‚“ã©åŒã˜ã§ã™ãŒã€å¹´ã€æœˆã€ãã—ã¦ãã®æœˆã®æ—¥ã®ã‚¿ãƒ—ルを返ã™ç‚¹ãŒç•°ãªã‚Šã¾ã™ã€‚

例を示ã—ã¾ã™ã€‚

import calendar


c = calendar.Calendar()
for i in c.itermonthdays3 (2019, 1):
    print (i, end=" ")


出力

(2018,12,31) (2019,01,01) (2019,01,02).....(2019,01,31) (2019,02,01) (2019,02,02) (2019,02,03)


monthdatescalendar() メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ year 㨠month を引数ã«ã¨ã‚Šã€ãã®æœˆã®å®Œå…¨ãªé€±æ•°ã®ãƒªã‚¹ãƒˆã‚’è¿”ã—ã¾ã™ã€‚å„週㯠7 個㮠datetime.date オブジェクトã®ãƒªã‚¹ãƒˆã§ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.monthdatescalendar (2019, 1):
    print (i, end=" ")


出力

[datetime.date(2018, 12, 31), datetime.date(2019, 01, 01), datetime.date(2019, 01, 02), datetime.date(2019, 01, 03), datetime.date(2019, 01, 04), datetime.date(2019, 01, 05), datetime.date(2019, 01, 06)... datetime.date(2019, 02, 03)]
.....


月日2カレンダー()メソッド

ã“ã®é–¢æ•°ã¯ã€å¹´ã¨æœˆã‚’引数ã«ã¨ã‚Šã€å„é€±ã‚’æœˆã¨æ›œæ—¥ã®7ã¤ã®ã‚¿ãƒ—ルã¨ã—ãŸé€±ã®ãƒªã‚¹ãƒˆã‚’è¿”ã—ã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.monthdays2calendar (2019, 1):
    print(i, end=" ")


出力

[(0,0) (1,1) (2,2) (3,3) (4,4) (5,5) (6,6)]
[(7,0) (8,1) (9,2) (10,3) (11,4) (12,5) (13,6)]
....


見ã¦ã®é€šã‚Šã€ã‚¿ãƒ—ãƒ«ã®æœ€åˆã®å€¤ã¯æœˆã®æ—¥ (0-31) ã§ã€ã‚¿ãƒ—ルã®2番目ã®å€¤ã¯é€±ç•ªå· (0-6) ã§ã™ã€‚

月日カレンダー()メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€å¹´ã¨æœˆã‚’引数ã«ã¨ã‚Šã€ 完全ãªé€±ã®ãƒªã‚¹ãƒˆã‚’è¿”ã—ã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.monthdayscalendar(2019, 1):
    print (i, end=" ")


サンプル出力

[0, 1, 2 , 3, 4, 5, 6] [7, 8, 9, 10, 11, 12, 13]....[28, 29, 30, 31, 0, 0, 0]


年賀状カレンダー()メソッド

ã“ã®é–¢æ•°ã¯ã€å¹´ (yyyy) ã¨æœˆã®è¡Œã®æ•° (w) を引数ã«ã¨ã‚Šã¾ã™ã€‚デフォルトã§ã¯ã€ w パラメータ㯠3 ã§ã™ã€‚ã“ã®é–¢æ•°ã¯ã€æœˆã®è¡Œã®ãƒªã‚¹ãƒˆã‚’è¿”ã—ã¾ã™ã€‚ã“ã“ã§ã€æ—¥ã¯ datetime.date オブジェクトã§ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.yeardatescalendar(2019, 3):
    print (i, end=" ")


出力

[[[datetime.date(2018, 12, 31), datetime.date(2019, 1, 1), datetime.date(2019, 1, 2), datetime.date(2019, 1, 3), datetime.date(2019, 1, 4), datetime.date(2019, 1, 5), datetime.date(2019, 1, 6)], [datetime.date(2019, 1, 7), datetime.date(2019, 1, 8), datetime.date(2019, 1, 9), datetime.date(2019, 1, 10), datetime.date(2019, 1, 11), datetime.date(2019, 1, 12), datetime.date(2019, 1, 13)], [datetime.date(2019, 1, 14), datetime.date(2019, 1, 15), datetime.date(2019, 1, 16), datetime.date(2019, 1, 17), datetime.date(2019, 1, 18), datetime.date(2019, 1, 19), datetime.date(2019, 1, 20)], [datetime.date(2019, 1, 21), datetime.date(2019, 1, 22), datetime.date(2019, 1, 23), datetime.date(2019, 1, 24), datetime.date(2019, 1, 25), datetime.date(2019, 1, 26), datetime.date(2019, 1, 27)], [datetime.date(2019, 1, 28), datetime.date(2019, 1, 29), datetime.date(2019, 1, 30), datetime.date(2019, 1, 31), datetime.date(2019, 2, 1), datetime.date(2019, 2, 2), datetime.date(2019, 2, 3)]] ... ]


年賀状2カレンダー()メソッド

ã“ã®é–¢æ•°ã¯ã€å¹´ (yyyy) ã¨ã€æœˆã®è¡Œã«å«ã¾ã‚Œã‚‹æœˆæ•° (w) ã‚’å—ã‘å–りã¾ã™ã€‚デフォルトã§ã¯ã€ w パラメータ㯠3 ã§ã™ã€‚ ã“ã®é–¢æ•°ã¯ã€æœˆã¨æ›œæ—¥ã®ã‚¿ãƒ—ãƒ«ã§æ§‹æˆã•れる週ã®ãƒªã‚¹ãƒˆã‚’è¿”ã—ã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.yeardays2calendar(2019, 3):
    print (i, end=" ")


出力

[[[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6)], [(7, 0), (8, 1), (9, 2), (10, 3), (11, 4), (12, 5), (13, 6)], [(14, 0), (15, 1), (16, 2), (17, 3), (18, 4), (19, 5), (20, 6)], [(21, 0), (22, 1), (23, 2), (24, 3), (25, 4), (26, 5), (27, 6)], [(28, 0), (29, 1), (30, 2), (31, 3), (0, 4), (0, 5), (0, 6)]], [[(0, 0), (0, 1), (0, 2), (0, 3), (1, 4), (2, 5), (3, 6)], [(4, 0), (5, 1), (6, 2), (7, 3), (8, 4), (9, 5), (10, 6)], [(11, 0), (12, 1), (13, 2), (14, 3), (15, 4), (16, 5), (17, 6)], [(18, 0), (19, 1), (20, 2), (21, 3), (22, 4), (23, 5), (24, 6)], [(25, 0), (26, 1), (27, 2), (28, 3), (0, 4), (0, 5), (0, 6)]], [[(0, 0), (0, 1), (0, 2), (0, 3), (1, 4), (2, 5), (3, 6)] ... ]]


年中無休カレンダー()メソッド

ã“ã®é–¢æ•°ã¯ã€å¹´ (yyyy) ã¨ã€æœˆã®è¡Œã«å«ã¾ã‚Œã‚‹æœˆæ•° (w) ã‚’å—ã‘å–りã¾ã™ã€‚デフォルトã§ã¯ã€ w パラメータ㯠3 ã§ã™ã€‚ ã“ã®é–¢æ•°ã¯ã€é€±ã®ãƒªã‚¹ãƒˆã‚’ãã®æœˆã®æ—¥æ•°ã¨ã—ã¦è¿”ã—ã¾ã™ã€‚

例

import calendar


c = calendar.Calendar()
for i in c.yeardayscalendar(2019, 3):
    print (i, end=" ")


出力

[[[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13], [14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 25, 26, 27], [28, 29, 30, 31, 0, 0, 0]], [[0, 0, 0, 0, 1, 2, 3], [4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 0, 0, 0]], [[0, 0, 0, 0, 1, 2, 3], [4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30, 31]]] [[[1, 2, 3, 4, 5, 6, 7], [8, 9, 10, 11, 12, 13, 14], [15, 16, 17, 18, 19, 20, 21], [22, 23, 24, 25, 26, 27, 28], [29, 30, 0, 0, 0, 0, 0]] ... ]]


TextCalendar` クラス

TextCalendarã¯ã€ãƒ—レーンテキストã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’生æˆã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã™ã‚‹ã€‚Calendar クラスã«ä¼¼ã¦ã„ã¾ã™ã€‚ã“ã®ã‚¯ãƒ©ã‚¹ã¯ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã‚’æŒã¡ã€ãƒ‡ãƒ•ォルトã§ã¯æœ€åˆã®æ›œæ—¥ãŒ 0 ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚ãれã§ã¯ã€ TextCalendar ã‚¯ãƒ©ã‚¹ãŒæä¾›ã™ã‚‹ãƒ¡ã‚½ãƒƒãƒ‰ã‚’見ã¦ã„ãã¾ã—ょã†ã€‚

formatmonth() メソッド

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯4ã¤ã®å¼•æ•°ã‚’ã¨ã‚Šã¾ã™: å¹´ã€æœˆã€æ—¥æ•°ã‚«ãƒ©ãƒ ã®å¹… (w) ã¨å„週ã§ä½¿ç”¨ã™ã‚‹è¡Œæ•° (l) ã§ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯è¤‡æ•°è¡Œã®æ–‡å­—列を返ã—ã¾ã™ã€‚

例を示ã—ã¾ã™ã€‚

import calendar


c = calendar.TextCalendar()
print(c.formatmonth(2019, 1))


ã“れã¯2019å¹´1月ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’表示ã—ã¾ã™ã€‚

出力ã•れã¾ã™ã€‚

コードå½

prmonth() メソッド。

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ formatmonth メソッドã«ã‚ˆã£ã¦è¿”ã•ã‚ŒãŸæœˆã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’表示ã™ã‚‹ã€‚ã“ã®é–¢æ•°ã‚’使用ã™ã‚‹ã¨ã€ã‚¿ãƒ¼ãƒŸãƒŠãƒ«ã«ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’表示ã™ã‚‹ãŸã‚ã® “print” 関数を使用ã›ãšã«æ¸ˆã¿ã¾ã™ã€‚

2019å¹´1月ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’å°åˆ·ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã‚’使用ã—ã¾ã™ã€‚

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


formatyear() メソッド。

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€ä¸€å¹´åˆ†ã® “m “カラムã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’è¿”ã—ã¾ã™ã€‚ã“ã®é–¢æ•°ã«æ¸¡ã•れる引数ã¯ã€å¹´ (yyyy), 日付ã®åˆ—ã®å¹… (w), 1週間ã®è¡Œæ•° (l), 月ã®åˆ—ã®é–“ã®ã‚¹ãƒšãƒ¼ã‚¹æ•° (c), åˆ—ã®æ•° (m) ã§ã‚る。

LocaleTextCalendar クラスã§ã™ã€‚

ã“ã®ã‚¯ãƒ©ã‚¹ã¯ TextCalendar クラスã®ã‚µãƒ–クラスã§ã‚る。ã“ã®ã‚¯ãƒ©ã‚¹ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã«ã¯ã€è¿½åŠ ã®å¼•æ•° locale ãŒæ¸¡ã•れã¾ã™ã€‚ã“れã¯ã€æŒ‡å®šã—ãŸãƒ­ã‚±ãƒ¼ãƒ«ã§ã®æœˆåã¨æ›œæ—¥åã‚’è¿”ã—ã¾ã™ã€‚æ¯å›½èªžã®ãƒ†ã‚­ã‚¹ãƒˆã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚ªãƒ–ジェクトを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚月や曜日ãªã©ã®ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã—ã€ãƒ­ãƒ¼ã‚«ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã§ãƒ•ォーマットã•れãŸã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’表示ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚例

c.prmonth(2019, 1)


ã“れã¯ã€ãƒ­ãƒ¼ã‚«ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã«å¾“ã£ã¦ã€æœˆã®åå‰ã‚’表示ã—ã¾ã™ã€‚

出力ã•れã¾ã™ã€‚

import calendar


for name in calendar.month_name:
    print(name)


HTMLCalendar クラスã§ã™ã€‚

ã“れ㯠TextCalendar クラスã¨ä¼¼ã¦ã„ã¾ã™ãŒã€HTML ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’生æˆã™ã‚‹ã‚¯ãƒ©ã‚¹ã§ã™ã€‚ã“ã®ã‚¯ãƒ©ã‚¹ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã§ã¯ã€firstweekday ã« “0” ãŒè¨­å®šã•れる。

以下ã¯ã€HTMLCalendar ã‚¯ãƒ©ã‚¹ãŒæä¾›ã™ã‚‹ã„ãã¤ã‹ã®ãƒ¡ã‚½ãƒƒãƒ‰ã§ã‚る。

formatmonth() メソッド。

ã“ã®é–¢æ•°ã¯ã€ã‚る月ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’ HTML ã®è¡¨å½¢å¼ã§è¡¨ç¤ºã—ã¾ã™ã€‚2019å¹´4月ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’HTMLã®è¡¨å½¢å¼ã§è¡¨ç¤ºã™ã‚‹ã«ã¯ã€æ¬¡ã®ã‚ˆã†ã«ã—ã¾ã™ã€‚

January
February
March
April
May
June
July
August
September
October
November
December


出力ã—ã¾ã™ã€‚

出力:“`
hc = calendar.HTMLCalendar()
print(hc.formatmonth(2019, 4))




#### formatyear() メソッド。

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€å¼•æ•°ã¨ã—ã¦å¹´ã¨è¡Œã®æœˆæ•°(`w`)ã‚’å—ã‘å–りã€ãã®å¹´å…¨ä½“ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’HTMLテーブルã¨ã—ã¦è¡¨ç¤ºã—ã¾ã™ã€‚デフォルトã§ã¯ã€å¹…ã¯3ã«è¨­å®šã•れã¦ã„ã¾ã™ã€‚ã“れを利用ã™ã‚‹ã¨ã€2019å¹´ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’HTMLテーブルã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚

April 2019
Mon Tue Wed Thu Fri Sat Sun
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          



#### formatyearpage() メソッド。

ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯ã€å¹´ã€é€£ç¶šã™ã‚‹æœˆæ•° (`w`)ã€ã‚«ã‚¹ã‚±ãƒ¼ãƒ‰ã‚¹ã‚¿ã‚¤ãƒ«ã‚·ãƒ¼ãƒˆ (CSS)ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’引数ã¨ã—ã¦å—ã‘å–りã¾ã™ã€‚CSSã¨ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚°ã‚’使用ã—ãªã„å ´åˆã«ã¯ã€ `css` 㨠`encoding` ã®å¼•æ•°ã‚’ `None` ã«è¨­å®šã™ã‚‹ã“ã¨ãŒã§ãる。ã“ã®é–¢æ•°ã¯ã€1年分ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’デフォルト幅3ã®HTMLページã¨ã—ã¦è¡¨ç¤ºã™ã‚‹ã€‚

hc = calendar.HTMLCalendar()
print(hc.formatyear(2019, 4))


hc = calendar.HTMLCalendar()
print(hc.formatyearpage(2019, 3, css=None, encoding=None))


HTMLCalendar`ã®å‡ºåŠ›ã¯ã€ãƒ—レーンテキスト版ã¨ä¼¼ã¦ã„ã¾ã™ãŒã€HTMLã‚¿ã‚°ã§ãƒ©ãƒƒãƒ—ã•れã¦ã„ã¾ã™ã€‚HTMLテーブルã®ã‚»ãƒ«ã«ã¯ã€æ›œæ—¥ã«å¯¾å¿œã™ã‚‹class属性ãŒå«ã¾ã‚Œã¦ã„ã¾ã™ã€‚ã—ãŸãŒã£ã¦ã€HTMLã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã¯CSSã«ã‚ˆã£ã¦ã‚¹ã‚¿ã‚¤ãƒ«ã‚’変更ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚



#### LocaleHTMLCalendar クラス

ã“ã®ã‚¯ãƒ©ã‚¹ã¯ `HTMLCalendar` クラスã®ã‚µãƒ–クラスã§ã™ã€‚ã“ã®ã‚¯ãƒ©ã‚¹ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ã«ã¯ã€è¿½åŠ ã®å¼•æ•°ã¨ã—㦠`locale` ãŒæ¸¡ã•れã¾ã™ã€‚ã“れã¯ã€æŒ‡å®šã—ãŸãƒ­ã‚±ãƒ¼ãƒ«ã§ã®æœˆåã¨æ›œæ—¥åã‚’ HTML ã®ãƒ†ãƒ¼ãƒ–ルã¨ã—ã¦è¿”ã—ã¾ã™ã€‚æ¯å›½èªžã®ãƒ†ã‚­ã‚¹ãƒˆã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚ªãƒ–ジェクトを作æˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚例ãˆã°ã€2019å¹´4月ã®ã‚«ãƒ¬ãƒ³ãƒ€ãƒ¼ã‚’'en_AU'ロケールã®HTMLテーブルã¨ã—ã¦ç”Ÿæˆã™ã‚‹ã«ã¯ã€æ¬¡ã®ã‚ˆã†ã«ã—ã¾ã™ã€‚

b'<?xml version=”1.0″ encoding=”utf-8″?


Calendar for 2019

2019

January
Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6


出力ã—ã¾ã™ã€‚

import calendar

cal = calendar.LocaleHTMLCalendar(locale=’en_AU.utf8′)
print(cal.formatmonth(2019, 4))

“`

çµè«–

ã“ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ã§ã¯ã€Python ã® Calendar モジュールã®ã•ã¾ã–ã¾ãªã‚¯ãƒ©ã‚¹ã¨ã‚µãƒ–クラスを使用ã—ã¦ã€é€±/月/å¹´å˜ä½ã®å€¤ã‚’管ç†ã™ã‚‹ãŸã‚ã®æ—¥ä»˜ã®æ“作ã«ã¤ã„ã¦èª¬æ˜Žã—ã¾ã—ãŸã€‚ã¾ãŸã€Python Calendar モジュールã®é–¢æ•°ã®ä½¿ç”¨æ³•ã«ã¤ã„ã¦ã‚‚説明ã—ã¾ã—ãŸã€‚ã•らã«ã€TextCalendar 㨠HTMLCalendar クラスを実装ã—ã¦ã€æ•´å½¢æ¸ˆã¿ã®å‡ºåŠ›ã‚’ç”Ÿæˆã§ãるよã†ã«ã—ã¾ã—ãŸã€‚ã“ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«ãŒæœ‰ç›Šãªã‚‚ã®ã§ã‚ã£ãŸã“ã¨ã‚’願ã£ã¦ã„ã¾ã™ã€‚

タイトルとURLをコピーしました