python

导航

calendar可以在python3时间中生成日历吗?

来源 :中华考试网 2020-11-17

  要以不同于其中一个可用默认值的格式生成输出,请使用calendar计算日期并将值组织为周和月范围,然后迭代结果。Calendar模块的 weekheader(),monthcalendar()和 yeardays2calendar()方法对此特别有用。

  调用yeardays2calendar()会生成一系列“月份行”列表。每个列表包括月份作为另一个周列表。这几周是由日期编号(1-31)和工作日编号(0-6)组成的元组列表。超出月份的天数为 0。

  import calendar

  import pprint

  cal = calendar.Calendar(calendar.SUNDAY)

  cal_data = cal.yeardays2calendar(2017, 3)

  print('len(cal_data) :', len(cal_data))

  top_months = cal_data[0]

  print('len(top_months) :', len(top_months))

  first_month = top_months[0]

  print('len(first_month) :', len(first_month))

  print('first_month:')

  pprint.pprint(first_month, width=65)

  # 输出

  # len(cal_data) : 4

  # len(top_months) : 3

  # len(first_month) : 5

  # first_month:

  # [[(1, 6), (2, 0), (3, 1), (4, 2), (5, 3), (6, 4), (7, 5)],

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

  # [(15, 6), (16, 0), (17, 1), (18, 2), (19, 3), (20, 4), (21, 5)],

  # [(22, 6), (23, 0), (24, 1), (25, 2), (26, 3), (27, 4), (28, 5)],

  # [(29, 6), (30, 0), (31, 1), (0, 2), (0, 3), (0, 4), (0, 5)]]

  相当于使用formatyear()。

  import calendar

  cal = calendar.TextCalendar(calendar.SUNDAY)

  print(cal.formatyear(2017, 2, 1, 1, 3))

  # 输出

  # 2017

  #

  # January February March

  # Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa

  # 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4

  # 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11

  # 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18

  # 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25

  # 29 30 31 26 27 28 26 27 28 29 30 31

  #

  # April May June

  # Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa

  # 1 1 2 3 4 5 6 1 2 3

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

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

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

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

  # 30

  #

  # July August September

  # Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa

  # 1 1 2 3 4 5 1 2

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

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

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

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

  # 30 31

  #

  # October November December

  # Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa

  # 1 2 3 4 5 6 7 1 2 3 4 1 2

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

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

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

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

  # 31

  day_name,day_abbr,month_name,和 month_abbr模块主要用于生产定制格式化输出(即,包括在 HTML 输出链接)。它们会针对当前区域自动化配置。

分享到

您可能感兴趣的文章