(十三)Python中級知識-カレンダーモジュール

48078 ワード

1、概要
timeとdatetimeモジュールがあれば、カレンダーモジュールを組み合わせることで、時間処理の各方面の応用をよりよくカバーすることができます.カレンダ・モジュールは、取得日が曜日、閏年平年かどうかを判断したり、現在の月の日数を取得したり、カレンダ出力を直接返すなど、カレンダおよび曜日関連の操作を主に処理します.カレンダモジュールを使用する前に、次のようにインポートします.
import calendar

2、常用関数
次の表はcalendarの一般的な関数をまとめています.
関数名
説明
calendar.month(year, month)
ある年の月のカレンダーを返す
calendar.setfirstweekday(day)
ある日を週の最初の日に設定します.0から始まり、0は月曜日を表します.
calendar.firstweekday()
週に戻る初日は何曜日ですか
calendar.calendar(year, w, l, m)
ある年のカレンダーを返します.3ヶ月は1行です.w毎日幅間隔文字;l各行間隔距離;mは毎週行数です.
calendar.isleap(year)
ブール値を返します.ある年は閏年でTrueを返します.そうでない場合はfalseです.
calendar.leapdays(y1, y2)
y 1年とy 2年の間の閏年の合計数を返します.
calendar.monthcalendar(year,month)
単一レベルのネストされたリストを返します.サブリストごとに1週間の整数をロードします.ある年のある月の外の日付はすべて0に設定します;範囲内の日は、その月の何日目から表示され、1から始まります.
calendar.monthrange(year,month)
2つの整数を返します.「≪結果を返す|Return Results|Essbase_Studio≫」で、1番目が月の初日が曜日で、2番目が月の日数です.曜日は0(月)から6(日)までです.
calendar.prcal(year, w, l, m)
自己印刷出力カレンダ:print(calendar.calendar(year,w,l,m))
calendar.prmonth(year, month)
印刷出力月を持参したカレンダーはprint(year,month)に等しい
calendar.timegm(タイムメタグループパラメータ)
とtime.gmtimeは逆に、時間メタグループを受信し、その時刻のタイムスタンプ(1970紀元後に経過した浮動小数点秒数)を返す.calendar.timegmはタイムゾーン変換を自動的に追加しません
calendar.weekday(year,month,day)
年月日を入力し、その日が曜日であることを知る(なお、戻り値は0~6の順で月曜~日曜に対応)
この表の関数はすべてケースで実践されており、ケースを直接実行して結果を見ることができます.
3、ケース
次の例では、カレンダーの一般的な関数のすべての実践的な操作を示します.
import calendar
import time



#   2020 3    
print(calendar.month(2020, 3))

#              
calendar.setfirstweekday(0)  # 0     、1     
print(calendar.firstweekday())

#       ,3    。       2  ;       1;4      。
print(calendar.calendar(2020, 2, 1, 4))

#       True,    false。
print("     :", calendar.isleap(2020))
#   2000,2020         。
print("    :", calendar.leapdays(2000, 2020))

#           。              。2020 3        0;               , 1  。
print(calendar.monthcalendar(2020, 3))

#       。      :              ,         。     0(   )  6(   )。
print(calendar.monthrange(2020, 3))

#            print(calendar.calendar(2020, 2, 1, 4))
calendar.prcal(2020, 2, 1, 4)
#           ,   print(calendar.month(2020, 3))
calendar.prmonth(2020, 3)

# calendar.timegm          
#  time.gmtime  ,        ,         (1970          )
print("time          :", time.gmtime())
print("           :", calendar.timegm((2020, 3, 16, 7, 52, 10, 0, 76, 0)))


#         ,          ,  java   switch case   
def getChineseWeek(w):
    #   w   dic ,   dic[key];    default(   ,    None)
    dic = {  #       
        0: "   ",
        1: "   ",
        2: "   ",
        3: "   ",
        4: "   ",
        5: "   ",
        6: "   "
    }
    val = dic.get(w, "      ")  #        ,          ,   ‘     ’
    return val

#      ,        (  ,         0   6            )。
year, month, day = 2020, 3, 16#         
print("%s %s %s     :%s" % (year, month, day, getChineseWeek(calendar.weekday(year, month, day))))#     getChineseWeek,             ,%s         


出力結果:
     March 2020
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

0
                                2020

      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                    1  2                       1
 6  7  8  9 10 11 12     3  4  5  6  7  8  9     2  3  4  5  6  7  8
13 14 15 16 17 18 19    10 11 12 13 14 15 16     9 10 11 12 13 14 15
20 21 22 23 24 25 26    17 18 19 20 21 22 23    16 17 18 19 20 21 22
27 28 29 30 31          24 25 26 27 28 29       23 24 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                 1  2  3     1  2  3  4  5  6  7
 6  7  8  9 10 11 12     4  5  6  7  8  9 10     8  9 10 11 12 13 14
13 14 15 16 17 18 19    11 12 13 14 15 16 17    15 16 17 18 19 20 21
20 21 22 23 24 25 26    18 19 20 21 22 23 24    22 23 24 25 26 27 28
27 28 29 30             25 26 27 28 29 30 31    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                    1  2        1  2  3  4  5  6
 6  7  8  9 10 11 12     3  4  5  6  7  8  9     7  8  9 10 11 12 13
13 14 15 16 17 18 19    10 11 12 13 14 15 16    14 15 16 17 18 19 20
20 21 22 23 24 25 26    17 18 19 20 21 22 23    21 22 23 24 25 26 27
27 28 29 30 31          24 25 26 27 28 29 30    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  2  3  4                       1        1  2  3  4  5  6
 5  6  7  8  9 10 11     2  3  4  5  6  7  8     7  8  9 10 11 12 13
12 13 14 15 16 17 18     9 10 11 12 13 14 15    14 15 16 17 18 19 20
19 20 21 22 23 24 25    16 17 18 19 20 21 22    21 22 23 24 25 26 27
26 27 28 29 30 31       23 24 25 26 27 28 29    28 29 30 31
                        30True5
[[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, 0, 0, 0, 0, 0]]
(6, 31)
                                2020

      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                    1  2                       1
 6  7  8  9 10 11 12     3  4  5  6  7  8  9     2  3  4  5  6  7  8
13 14 15 16 17 18 19    10 11 12 13 14 15 16     9 10 11 12 13 14 15
20 21 22 23 24 25 26    17 18 19 20 21 22 23    16 17 18 19 20 21 22
27 28 29 30 31          24 25 26 27 28 29       23 24 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                 1  2  3     1  2  3  4  5  6  7
 6  7  8  9 10 11 12     4  5  6  7  8  9 10     8  9 10 11 12 13 14
13 14 15 16 17 18 19    11 12 13 14 15 16 17    15 16 17 18 19 20 21
20 21 22 23 24 25 26    18 19 20 21 22 23 24    22 23 24 25 26 27 28
27 28 29 30             25 26 27 28 29 30 31    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                    1  2        1  2  3  4  5  6
 6  7  8  9 10 11 12     3  4  5  6  7  8  9     7  8  9 10 11 12 13
13 14 15 16 17 18 19    10 11 12 13 14 15 16    14 15 16 17 18 19 20
20 21 22 23 24 25 26    17 18 19 20 21 22 23    21 22 23 24 25 26 27
27 28 29 30 31          24 25 26 27 28 29 30    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  2  3  4                       1        1  2  3  4  5  6
 5  6  7  8  9 10 11     2  3  4  5  6  7  8     7  8  9 10 11 12 13
12 13 14 15 16 17 18     9 10 11 12 13 14 15    14 15 16 17 18 19 20
19 20 21 22 23 24 25    16 17 18 19 20 21 22    21 22 23 24 25 26 27
26 27 28 29 30 31       23 24 25 26 27 28 29    28 29 30 31
                        30

     March 2020
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
time          : time.struct_time(tm_year=2020, tm_mon=3, tm_mday=16, tm_hour=9, tm_min=17, tm_sec=13, tm_wday=0, tm_yday=76, tm_isdst=0)1584345130
2020 3 16

4、まとめ
カレンダーモジュールはやはり役に立ち、週などの問題を処理するのによく使われます.タイムスタンプの概念は、1584345130などのミリ秒数の列です.ここではPython 3のもう一つのデータ型を用いた:辞書、辞書はjavaの中で少しMapクラスに似ていて、get方法で値を取ります.カレンダーモジュールはコンソールに並べられた文字列のカレンダーを直接印刷することができ、非常に直感的で、適用シーンはまだ予想されていません.