python:calendar 日历相关库

  • Post author:
  • Post category:python


calendar — 日历相关函数

Calendar类

Calendar 对象提供了一些可被用于准备日历数据格式化的方法。 这个类本身不执行任何格式化操作。

# 部分源码

class Calendar(object):
    """
    Base calendar class. This class doesn't do any formatting. It simply
    provides data to subclasses.
    """

    def __init__(self, firstweekday=0):
        self.firstweekday = firstweekday # 0 = Monday, 6 = Sunday

初始化

Calendar

类时,

firstweekday

是一个整数,并且默认值为 0,这个 0 用于指定一周的第一天。 0 也就是星期一,6 是星期天。



Calendar

类的实例有下列方法:

    def iterweekdays(self):
        """
        获取一周的数字
        """

    def itermonthdates(self, year, month):
        """
        获取一个月的年月日,返回的datetime.date 对象
        """

    def itermonthdays(self, year, month):
        """
        获取一个月的日,不在本月的日使用 0 填充
        """

    def itermonthdays2(self, year, month):
        """
        获取一个月的日,并且每日跟随着周几。不在本月的日使用 0 填充
        """

    def itermonthdays3(self, year, month):
        """
        获取一个月的年月日,年月日为元祖类型。
        例如:((2021, 11, 29), (2021, 11, 30))
        """

    def itermonthdays4(self, year, month):
        """
        获取一个月的年月日,并且跟随着周几,年月日周几为元祖类型。
        例如:((2021, 11, 29, 0), (2021, 11, 30, 1))
        """

以上 6 种方法,返回的均是生成器对象,所以要记得类型强转下,示例效果如下:

from calendar import Calendar


c = Calendar()

print(tuple(c.iterweekdays()))
print(tuple(c.itermonthdates(2021, 12)))
print(tuple(c.itermonthdays(2021, 12)))
print(tuple(c.itermonthdays2(2021, 12)))
print(tuple(c.itermonthdays3(2021, 12)))
print(tuple(c.itermonthdays4(2021, 12)))


# 运行结果:
(0, 1, 2, 3, 4, 5, 6)
(datetime.date(2021, 11, 29), datetime.date(2021, 11, 30), datetime.date(2021, 12, 1), datetime.date(2021, 12, 2), datetime.date(2021, 12, 3), datetime.date(2021, 12, 4), datetime.date(2021, 12, 5), datetime.date(2021, 12, 6), datetime.date(2021, 12, 7), datetime.date(2021, 12, 8), datetime.date(2021, 12, 9), datetime.date(2021, 12, 10), datetime.date(2021, 12, 11), datetime.date(2021, 12, 12), datetime.date(2021, 12, 13), datetime.date(2021, 12, 14), datetime.date(2021, 12, 15), datetime.date(2021, 12, 16), datetime.date(2021, 12, 17), datetime.date(2021, 12, 18), datetime.date(2021, 12, 19), datetime.date(2021, 12, 20), datetime.date(2021, 12, 21), datetime.date(2021, 12, 22), datetime.date(2021, 12, 23), datetime.date(2021, 12, 24), datetime.date(2021, 12, 25), datetime.date(2021, 12, 26), datetime.date(2021, 12, 27), datetime.date(2021, 12, 28), datetime.date(2021, 12, 29), datetime.date(2021, 12, 30), datetime.date(2021, 12, 31), datetime.date(2022, 1, 1), datetime.date(2022, 1, 2))
(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, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 0), (7, 1), (8, 2), (9, 3), (10, 4), (11, 5), (12, 6), (13, 0), (14, 1), (15, 2), (16, 3), (17, 4), (18, 5), (19, 6), (20, 0), (21, 1), (22, 2), (23, 3), (24, 4), (25, 5), (26, 6), (27, 0), (28, 1), (29, 2), (30, 3), (31, 4), (0, 5), (0, 6))
((2021, 11, 29), (2021, 11, 30), (2021, 12, 1), (2021, 12, 2), (2021, 12, 3), (2021, 12, 4), (2021, 12, 5), (2021, 12, 6), (2021, 12, 7), (2021, 12, 8), (2021, 12, 9), (2021, 12, 10), (2021, 12, 11), (2021, 12, 12), (2021, 12, 13), (2021, 12, 14), (2021, 12, 15), (2021, 12, 16), (2021, 12, 17), (2021, 12, 18), (2021, 12, 19), (2021, 12, 20), (2021, 12, 21), (2021, 12, 22), (2021, 12, 23), (2021, 12, 24), (2021, 12, 25), (2021, 12, 26), (2021, 12, 27), (2021, 12, 28), (2021, 12, 29), (2021, 12, 30), (2021, 12, 31), (2022, 1, 1), (2022, 1, 2))
((2021, 11, 29, 0), (2021, 11, 30, 1), (2021, 12, 1, 2), (2021, 12, 2, 3), (2021, 12, 3, 4), (2021, 12, 4, 5), (2021, 12, 5, 6), (2021, 12, 6, 0), (2021, 12, 7, 1), (2021, 12, 8, 2), (2021, 12, 9, 3), (2021, 12, 10, 4), (2021, 12, 11, 5), (2021, 12, 12, 6), (2021, 12, 13, 0), (2021, 12, 14, 1), (2021, 12, 15, 2), (2021, 12, 16, 3), (2021, 12, 17, 4), (2021, 12, 18, 5), (2021, 12, 19, 6), (2021, 12, 20, 0), (2021, 12, 21, 1), (2021, 12, 22, 2), (2021, 12, 23, 3), (2021, 12, 24, 4), (2021, 12, 25, 5), (2021, 12, 26, 6), (2021, 12, 27, 0), (2021, 12, 28, 1), (2021, 12, 29, 2), (2021, 12, 30, 3), (2021, 12, 31, 4), (2022, 1, 1, 5), (2022, 1, 2, 6))

Process finished with exit code 0


后续

Calendar

类中又新增了 6 中实例方法,分别是处理月份和年的:

    def monthdatescalendar(self, year, month):
        """
        返回一个月的年月日,并且分割成四个周,使用的datetime.date 对象
        例如:[
              [datetime.date(2021, 11, 29), datetime.date(2021, 11, 30), datetime.date(2021, 12, 1), datetime.date(2021, 12, 2), datetime.date(2021, 12, 3), datetime.date(2021, 12, 4), datetime.date(2021, 12, 5)], 
              [datetime.date(2021, 12, 6), datetime.date(2021, 12, 7), datetime.date(2021, 12, 8), datetime.date(2021, 12, 9), datetime.date(2021, 12, 10), datetime.date(2021, 12, 11), datetime.date(2021, 12, 12)], 
              [datetime.date(2021, 12, 13), datetime.date(2021, 12, 14), datetime.date(2021, 12, 15), datetime.date(2021, 12, 16), datetime.date(2021, 12, 17), datetime.date(2021, 12, 18), datetime.date(2021, 12, 19)], 
              [datetime.date(2021, 12, 20), datetime.date(2021, 12, 21), datetime.date(2021, 12, 22), datetime.date(2021, 12, 23), datetime.date(2021, 12, 24), datetime.date(2021, 12, 25), datetime.date(2021, 12, 26)], 
              [datetime.date(2021, 12, 27), datetime.date(2021, 12, 28), datetime.date(2021, 12, 29), datetime.date(2021, 12, 30), datetime.date(2021, 12, 31), datetime.date(2022, 1, 1), datetime.date(2022, 1, 2)]
             ]
        """

    def monthdays2calendar(self, year, month):
        """
        返回一个月的天和周几,并且分割成四个周,不在本月的日使用 0 填充。
        例如:[
              [(0, 0), (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)], 
              [(6, 0), (7, 1), (8, 2), (9, 3), (10, 4), (11, 5), (12, 6)], 
              [(13, 0), (14, 1), (15, 2), (16, 3), (17, 4), (18, 5), (19, 6)], 
              [(20, 0), (21, 1), (22, 2), (23, 3), (24, 4), (25, 5), (26, 6)], 
              [(27, 0), (28, 1), (29, 2), (30, 3), (31, 4), (0, 5), (0, 6)]
             ]
        """

    def monthdayscalendar(self, year, month):
        """
        返回一个月的天,并且分割成四个周,不在本月的日使用 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]
             ]
        """

    def yeardatescalendar(self, year, width=3):
        """
        返回的值是一个列表,列表是月份组成的行。每一行包含了最多 width 个月(默认为3)。
        每一天使用 datetime.date 对象。
        """

    def yeardays2calendar(self, year, width=3):
        """
        返回的值是一个列表,列表的元素是由表示日期的数字和表示星期几的数字组成的元组。
        不在这个月的日子为0。
        """

    def yeardayscalendar(self, year, width=3):
        """
        返回的值是一个列表,周列表的元素是表示日期天的数字。不在这个月的日子为0。
        """
  • 首先是月份的,示例如下:
from calendar import Calendar


c = Calendar()

print(c.monthdayscalendar(2021, 12))
print(c.monthdatescalendar(2021, 12))
print(c.monthdays2calendar(2021, 12))


# 运行结果
[
[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]
]
---
[
[datetime.date(2021, 11, 29), datetime.date(2021, 11, 30), datetime.date(2021, 12, 1), datetime.date(2021, 12, 2), datetime.date(2021, 12, 3), datetime.date(2021, 12, 4), datetime.date(2021, 12, 5)],
[datetime.date(2021, 12, 6), datetime.date(2021, 12, 7), datetime.date(2021, 12, 8), datetime.date(2021, 12, 9), datetime.date(2021, 12, 10), datetime.date(2021, 12, 11), datetime.date(2021, 12, 12)], 
[datetime.date(2021, 12, 13), datetime.date(2021, 12, 14), datetime.date(2021, 12, 15), datetime.date(2021, 12, 16), datetime.date(2021, 12, 17), datetime.date(2021, 12, 18), datetime.date(2021, 12, 19)], 
[datetime.date(2021, 12, 20), datetime.date(2021, 12, 21), datetime.date(2021, 12, 22), datetime.date(2021, 12, 23), datetime.date(2021, 12, 24), datetime.date(2021, 12, 25), datetime.date(2021, 12, 26)], 
[datetime.date(2021, 12, 27), datetime.date(2021, 12, 28), datetime.date(2021, 12, 29), datetime.date(2021, 12, 30), datetime.date(2021, 12, 31), datetime.date(2022, 1, 1), datetime.date(2022, 1, 2)]
]
---
[
[(0, 0), (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)], 
[(6, 0), (7, 1), (8, 2), (9, 3), (10, 4), (11, 5), (12, 6)], 
[(13, 0), (14, 1), (15, 2), (16, 3), (17, 4), (18, 5), (19, 6)], 
[(20, 0), (21, 1), (22, 2), (23, 3), (24, 4), (25, 5), (26, 6)], 
[(27, 0), (28, 1), (29, 2), (30, 3), (31, 4), (0, 5), (0, 6)]
]

Process finished with exit code 0
  • 其次是获取年的,示例如下:
from calendar import Calendar


c = Calendar()

for i in c.yeardatescalendar(2021):
    print(i)
print()

for i in c.yeardays2calendar(2021):
    print(i)
print()

for i in c.yeardayscalendar(2021):
    print(i)


# 运行结果:
[[[datetime.date(2020, 12, 28), datetime.date(2020, 12, 29), datetime.date(2020, 12, 30), datetime.date(2020, 12, 31), datetime.date(2021, 1, 1), datetime.date(2021, 1, 2), datetime.date(2021, 1, 3)], [datetime.date(2021, 1, 4), datetime.date(2021, 1, 5), datetime.date(2021, 1, 6), datetime.date(2021, 1, 7), datetime.date(2021, 1, 8), datetime.date(2021, 1, 9), datetime.date(2021, 1, 10)], [datetime.date(2021, 1, 11), datetime.date(2021, 1, 12), datetime.date(2021, 1, 13), datetime.date(2021, 1, 14), datetime.date(2021, 1, 15), datetime.date(2021, 1, 16), datetime.date(2021, 1, 17)], [datetime.date(2021, 1, 18), datetime.date(2021, 1, 19), datetime.date(2021, 1, 20), datetime.date(2021, 1, 21), datetime.date(2021, 1, 22), datetime.date(2021, 1, 23), datetime.date(2021, 1, 24)], [datetime.date(2021, 1, 25), datetime.date(2021, 1, 26), datetime.date(2021, 1, 27), datetime.date(2021, 1, 28), datetime.date(2021, 1, 29), datetime.date(2021, 1, 30), datetime.date(2021, 1, 31)]], [[datetime.date(2021, 2, 1), datetime.date(2021, 2, 2), datetime.date(2021, 2, 3), datetime.date(2021, 2, 4), datetime.date(2021, 2, 5), datetime.date(2021, 2, 6), datetime.date(2021, 2, 7)], [datetime.date(2021, 2, 8), datetime.date(2021, 2, 9), datetime.date(2021, 2, 10), datetime.date(2021, 2, 11), datetime.date(2021, 2, 12), datetime.date(2021, 2, 13), datetime.date(2021, 2, 14)], [datetime.date(2021, 2, 15), datetime.date(2021, 2, 16), datetime.date(2021, 2, 17), datetime.date(2021, 2, 18), datetime.date(2021, 2, 19), datetime.date(2021, 2, 20), datetime.date(2021, 2, 21)], [datetime.date(2021, 2, 22), datetime.date(2021, 2, 23), datetime.date(2021, 2, 24), datetime.date(2021, 2, 25), datetime.date(2021, 2, 26), datetime.date(2021, 2, 27), datetime.date(2021, 2, 28)]], [[datetime.date(2021, 3, 1), datetime.date(2021, 3, 2), datetime.date(2021, 3, 3), datetime.date(2021, 3, 4), datetime.date(2021, 3, 5), datetime.date(2021, 3, 6), datetime.date(2021, 3, 7)], [datetime.date(2021, 3, 8), datetime.date(2021, 3, 9), datetime.date(2021, 3, 10), datetime.date(2021, 3, 11), datetime.date(2021, 3, 12), datetime.date(2021, 3, 13), datetime.date(2021, 3, 14)], [datetime.date(2021, 3, 15), datetime.date(2021, 3, 16), datetime.date(2021, 3, 17), datetime.date(2021, 3, 18), datetime.date(2021, 3, 19), datetime.date(2021, 3, 20), datetime.date(2021, 3, 21)], [datetime.date(2021, 3, 22), datetime.date(2021, 3, 23), datetime.date(2021, 3, 24), datetime.date(2021, 3, 25), datetime.date(2021, 3, 26), datetime.date(2021, 3, 27), datetime.date(2021, 3, 28)], [datetime.date(2021, 3, 29), datetime.date(2021, 3, 30), datetime.date(2021, 3, 31), datetime.date(2021, 4, 1), datetime.date(2021, 4, 2), datetime.date(2021, 4, 3), datetime.date(2021, 4, 4)]]]
[[[datetime.date(2021, 3, 29), datetime.date(2021, 3, 30), datetime.date(2021, 3, 31), datetime.date(2021, 4, 1), datetime.date(2021, 4, 2), datetime.date(2021, 4, 3), datetime.date(2021, 4, 4)], [datetime.date(2021, 4, 5), datetime.date(2021, 4, 6), datetime.date(2021, 4, 7), datetime.date(2021, 4, 8), datetime.date(2021, 4, 9), datetime.date(2021, 4, 10), datetime.date(2021, 4, 11)], [datetime.date(2021, 4, 12), datetime.date(2021, 4, 13), datetime.date(2021, 4, 14), datetime.date(2021, 4, 15), datetime.date(2021, 4, 16), datetime.date(2021, 4, 17), datetime.date(2021, 4, 18)], [datetime.date(2021, 4, 19), datetime.date(2021, 4, 20), datetime.date(2021, 4, 21), datetime.date(2021, 4, 22), datetime.date(2021, 4, 23), datetime.date(2021, 4, 24), datetime.date(2021, 4, 25)], [datetime.date(2021, 4, 26), datetime.date(2021, 4, 27), datetime.date(2021, 4, 28), datetime.date(2021, 4, 29), datetime.date(2021, 4, 30), datetime.date(2021, 5, 1), datetime.date(2021, 5, 2)]], [[datetime.date(2021, 4, 26), datetime.date(2021, 4, 27), datetime.date(2021, 4, 28), datetime.date(2021, 4, 29), datetime.date(2021, 4, 30), datetime.date(2021, 5, 1), datetime.date(2021, 5, 2)], [datetime.date(2021, 5, 3), datetime.date(2021, 5, 4), datetime.date(2021, 5, 5), datetime.date(2021, 5, 6), datetime.date(2021, 5, 7), datetime.date(2021, 5, 8), datetime.date(2021, 5, 9)], [datetime.date(2021, 5, 10), datetime.date(2021, 5, 11), datetime.date(2021, 5, 12), datetime.date(2021, 5, 13), datetime.date(2021, 5, 14), datetime.date(2021, 5, 15), datetime.date(2021, 5, 16)], [datetime.date(2021, 5, 17), datetime.date(2021, 5, 18), datetime.date(2021, 5, 19), datetime.date(2021, 5, 20), datetime.date(2021, 5, 21), datetime.date(2021, 5, 22), datetime.date(2021, 5, 23)], [datetime.date(2021, 5, 24), datetime.date(2021, 5, 25), datetime.date(2021, 5, 26), datetime.date(2021, 5, 27), datetime.date(2021, 5, 28), datetime.date(2021, 5, 29), datetime.date(2021, 5, 30)], [datetime.date(2021, 5, 31), datetime.date(2021, 6, 1), datetime.date(2021, 6, 2), datetime.date(2021, 6, 3), datetime.date(2021, 6, 4), datetime.date(2021, 6, 5), datetime.date(2021, 6, 6)]], [[datetime.date(2021, 5, 31), datetime.date(2021, 6, 1), datetime.date(2021, 6, 2), datetime.date(2021, 6, 3), datetime.date(2021, 6, 4), datetime.date(2021, 6, 5), datetime.date(2021, 6, 6)], [datetime.date(2021, 6, 7), datetime.date(2021, 6, 8), datetime.date(2021, 6, 9), datetime.date(2021, 6, 10), datetime.date(2021, 6, 11), datetime.date(2021, 6, 12), datetime.date(2021, 6, 13)], [datetime.date(2021, 6, 14), datetime.date(2021, 6, 15), datetime.date(2021, 6, 16), datetime.date(2021, 6, 17), datetime.date(2021, 6, 18), datetime.date(2021, 6, 19), datetime.date(2021, 6, 20)], [datetime.date(2021, 6, 21), datetime.date(2021, 6, 22), datetime.date(2021, 6, 23), datetime.date(2021, 6, 24), datetime.date(2021, 6, 25), datetime.date(2021, 6, 26), datetime.date(2021, 6, 27)], [datetime.date(2021, 6, 28), datetime.date(2021, 6, 29), datetime.date(2021, 6, 30), datetime.date(2021, 7, 1), datetime.date(2021, 7, 2), datetime.date(2021, 7, 3), datetime.date(2021, 7, 4)]]]
[[[datetime.date(2021, 6, 28), datetime.date(2021, 6, 29), datetime.date(2021, 6, 30), datetime.date(2021, 7, 1), datetime.date(2021, 7, 2), datetime.date(2021, 7, 3), datetime.date(2021, 7, 4)], [datetime.date(2021, 7, 5), datetime.date(2021, 7, 6), datetime.date(2021, 7, 7), datetime.date(2021, 7, 8), datetime.date(2021, 7, 9), datetime.date(2021, 7, 10), datetime.date(2021, 7, 11)], [datetime.date(2021, 7, 12), datetime.date(2021, 7, 13), datetime.date(2021, 7, 14), datetime.date(2021, 7, 15), datetime.date(2021, 7, 16), datetime.date(2021, 7, 17), datetime.date(2021, 7, 18)], [datetime.date(2021, 7, 19), datetime.date(2021, 7, 20), datetime.date(2021, 7, 21), datetime.date(2021, 7, 22), datetime.date(2021, 7, 23), datetime.date(2021, 7, 24), datetime.date(2021, 7, 25)], [datetime.date(2021, 7, 26), datetime.date(2021, 7, 27), datetime.date(2021, 7, 28), datetime.date(2021, 7, 29), datetime.date(2021, 7, 30), datetime.date(2021, 7, 31), datetime.date(2021, 8, 1)]], [[datetime.date(2021, 7, 26), datetime.date(2021, 7, 27), datetime.date(2021, 7, 28), datetime.date(2021, 7, 29), datetime.date(2021, 7, 30), datetime.date(2021, 7, 31), datetime.date(2021, 8, 1)], [datetime.date(2021, 8, 2), datetime.date(2021, 8, 3), datetime.date(2021, 8, 4), datetime.date(2021, 8, 5), datetime.date(2021, 8, 6), datetime.date(2021, 8, 7), datetime.date(2021, 8, 8)], [datetime.date(2021, 8, 9), datetime.date(2021, 8, 10), datetime.date(2021, 8, 11), datetime.date(2021, 8, 12), datetime.date(2021, 8, 13), datetime.date(2021, 8, 14), datetime.date(2021, 8, 15)], [datetime.date(2021, 8, 16), datetime.date(2021, 8, 17), datetime.date(2021, 8, 18), datetime.date(2021, 8, 19), datetime.date(2021, 8, 20), datetime.date(2021, 8, 21), datetime.date(2021, 8, 22)], [datetime.date(2021, 8, 23), datetime.date(2021, 8, 24), datetime.date(2021, 8, 25), datetime.date(2021, 8, 26), datetime.date(2021, 8, 27), datetime.date(2021, 8, 28), datetime.date(2021, 8, 29)], [datetime.date(2021, 8, 30), datetime.date(2021, 8, 31), datetime.date(2021, 9, 1), datetime.date(2021, 9, 2), datetime.date(2021, 9, 3), datetime.date(2021, 9, 4), datetime.date(2021, 9, 5)]], [[datetime.date(2021, 8, 30), datetime.date(2021, 8, 31), datetime.date(2021, 9, 1), datetime.date(2021, 9, 2), datetime.date(2021, 9, 3), datetime.date(2021, 9, 4), datetime.date(2021, 9, 5)], [datetime.date(2021, 9, 6), datetime.date(2021, 9, 7), datetime.date(2021, 9, 8), datetime.date(2021, 9, 9), datetime.date(2021, 9, 10), datetime.date(2021, 9, 11), datetime.date(2021, 9, 12)], [datetime.date(2021, 9, 13), datetime.date(2021, 9, 14), datetime.date(2021, 9, 15), datetime.date(2021, 9, 16), datetime.date(2021, 9, 17), datetime.date(2021, 9, 18), datetime.date(2021, 9, 19)], [datetime.date(2021, 9, 20), datetime.date(2021, 9, 21), datetime.date(2021, 9, 22), datetime.date(2021, 9, 23), datetime.date(2021, 9, 24), datetime.date(2021, 9, 25), datetime.date(2021, 9, 26)], [datetime.date(2021, 9, 27), datetime.date(2021, 9, 28), datetime.date(2021, 9, 29), datetime.date(2021, 9, 30), datetime.date(2021, 10, 1), datetime.date(2021, 10, 2), datetime.date(2021, 10, 3)]]]
[[[datetime.date(2021, 9, 27), datetime.date(2021, 9, 28), datetime.date(2021, 9, 29), datetime.date(2021, 9, 30), datetime.date(2021, 10, 1), datetime.date(2021, 10, 2), datetime.date(2021, 10, 3)], [datetime.date(2021, 10, 4), datetime.date(2021, 10, 5), datetime.date(2021, 10, 6), datetime.date(2021, 10, 7), datetime.date(2021, 10, 8), datetime.date(2021, 10, 9), datetime.date(2021, 10, 10)], [datetime.date(2021, 10, 11), datetime.date(2021, 10, 12), datetime.date(2021, 10, 13), datetime.date(2021, 10, 14), datetime.date(2021, 10, 15), datetime.date(2021, 10, 16), datetime.date(2021, 10, 17)], [datetime.date(2021, 10, 18), datetime.date(2021, 10, 19), datetime.date(2021, 10, 20), datetime.date(2021, 10, 21), datetime.date(2021, 10, 22), datetime.date(2021, 10, 23), datetime.date(2021, 10, 24)], [datetime.date(2021, 10, 25), datetime.date(2021, 10, 26), datetime.date(2021, 10, 27), datetime.date(2021, 10, 28), datetime.date(2021, 10, 29), datetime.date(2021, 10, 30), datetime.date(2021, 10, 31)]], [[datetime.date(2021, 11, 1), datetime.date(2021, 11, 2), datetime.date(2021, 11, 3), datetime.date(2021, 11, 4), datetime.date(2021, 11, 5), datetime.date(2021, 11, 6), datetime.date(2021, 11, 7)], [datetime.date(2021, 11, 8), datetime.date(2021, 11, 9), datetime.date(2021, 11, 10), datetime.date(2021, 11, 11), datetime.date(2021, 11, 12), datetime.date(2021, 11, 13), datetime.date(2021, 11, 14)], [datetime.date(2021, 11, 15), datetime.date(2021, 11, 16), datetime.date(2021, 11, 17), datetime.date(2021, 11, 18), datetime.date(2021, 11, 19), datetime.date(2021, 11, 20), datetime.date(2021, 11, 21)], [datetime.date(2021, 11, 22), datetime.date(2021, 11, 23), datetime.date(2021, 11, 24), datetime.date(2021, 11, 25), datetime.date(2021, 11, 26), datetime.date(2021, 11, 27), datetime.date(2021, 11, 28)], [datetime.date(2021, 11, 29), datetime.date(2021, 11, 30), datetime.date(2021, 12, 1), datetime.date(2021, 12, 2), datetime.date(2021, 12, 3), datetime.date(2021, 12, 4), datetime.date(2021, 12, 5)]], [[datetime.date(2021, 11, 29), datetime.date(2021, 11, 30), datetime.date(2021, 12, 1), datetime.date(2021, 12, 2), datetime.date(2021, 12, 3), datetime.date(2021, 12, 4), datetime.date(2021, 12, 5)], [datetime.date(2021, 12, 6), datetime.date(2021, 12, 7), datetime.date(2021, 12, 8), datetime.date(2021, 12, 9), datetime.date(2021, 12, 10), datetime.date(2021, 12, 11), datetime.date(2021, 12, 12)], [datetime.date(2021, 12, 13), datetime.date(2021, 12, 14), datetime.date(2021, 12, 15), datetime.date(2021, 12, 16), datetime.date(2021, 12, 17), datetime.date(2021, 12, 18), datetime.date(2021, 12, 19)], [datetime.date(2021, 12, 20), datetime.date(2021, 12, 21), datetime.date(2021, 12, 22), datetime.date(2021, 12, 23), datetime.date(2021, 12, 24), datetime.date(2021, 12, 25), datetime.date(2021, 12, 26)], [datetime.date(2021, 12, 27), datetime.date(2021, 12, 28), datetime.date(2021, 12, 29), datetime.date(2021, 12, 30), datetime.date(2021, 12, 31), datetime.date(2022, 1, 1), datetime.date(2022, 1, 2)]]]

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

[[[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]], [[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, 29, 30, 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, 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, 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, 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, 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, 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]], [[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]]]

Process finished with exit code 0

TextCalendar类

可以使用这个类生成纯文本日历。

TextCalendar



Calendar

的子类,也就是

TextCalendar

继承了

Calendar

,所以

Calendar

中的实例方法,

TextCalendar

都可以调用。

class TextCalendar(Calendar):
    """
    Subclass of Calendar that outputs a calendar as a simple plain text
    similar to the UNIX program cal.
    """

    def prweek(self, theweek, width):
        """
        打印一周,方法内部调用的是formatweek方法
        """

    def formatday(self, day, weekday, width):
        """
        返回格式化的日期
        """

    def formatweek(self, theweek, width):
        """
        以字符串形式返回一周(无换行符)。w 为日期的宽度

        例如:
        t = TextCalendar()
        print(t.formatweek([(0, 0), (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)], 1)) 

        运行结果: 1  2  3  4  5
        """

    def formatweekday(self, day, width):
        """
        返回格式化的星期几名称。 
        """

    def formatweekheader(self, width):
        """
        返回一个星期的标题。 
        """

    def formatmonthname(self, theyear, themonth, width, withyear=True):
        """
        返回格式化的月份名称
        """

    def prmonth(self, theyear, themonth, w=0, l=0):
        """
        打印一个月的日历。 
        """

    def formatmonth(self, theyear, themonth, w=0, l=0):
        """
        返回一个月的日历字符串(多行)
        """

    def formatyear(self, theyear, w=2, l=1, c=6, m=3):
        """
        以多行字符串形式返回一年的日历。
        """

    def pryear(self, theyear, w=0, l=0, c=6, m=3):
        """
        打印一年的日历 ,方法内部调用的是formatyear方法
        """

以上方法运行示例如下:

  • 首先是没有返回值的方法,只是print打印,所有都会带一个None值(没有返回值,默认返回None)
from calendar import TextCalendar

t = TextCalendar()


print(t.pryear(2021))
print()
print(t.prmonth(2021, 6, w=2, l=1))
print()
print(t.prweek([(0, 0), (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)], 1))


# 运行结果:
                                  2021

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

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

     June 2021
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
None

   1  2  3  4  5None

Process finished with exit code 0
  • 其次是有返回值的方法,也就是有return返回值的
from calendar import TextCalendar

t = TextCalendar()

print(t.formatyear(2021))
print(t.formatmonth(2021, 6, w=1, l=1))
print(t.formatweek([(0, 0), (0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6)], 1))
print(t.formatday(6, [(0, 1), (0, 2), (1, 3), (2, 4), (3, 5), (4, 6)], 1))
print(t.formatweekday(6, 1))


# 运行结果
                                  2021

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

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

     June 2021
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

     1  2  3  4  5
 6
S

Process finished with exit code 0
  • 最后两个方法,一个返回头信息,一个返回英文的月份
from calendar import TextCalendar

t = TextCalendar()

print(t.formatweekheader(2))
print(t.formatmonthname(2021, 2, 2))


# 运行结果
Mo Tu We Th Fr Sa Su
February 2021

Process finished with exit code 0

除了上述那两个类,还有一个

HTMLCalendar

类(可以使用这个类生成 HTML 日历),这里就不再多叙述了,可查看

python

官方文档详细了解。

简单文本日历使用方法

import calendar as c

#   设置每一周的开始(0 表示星期一,6 表示星期天)
c.setfirstweekday(c.SUNDAY)
#   返回当前设置的每星期的第一天的数值。
print(c.firstweekday())
print("-" * 20)

#   如果 year 是闰年则返回 True ,否则返回 False。
print(c.isleap(2021))
print("-" * 20)

#   返回在范围 y1 至 y2 (包含 y1 和 y2 )之间的闰年的年数,其中 y1 和 y2 是年份。
print(c.leapdays(2021, 2029))
print("-" * 20)

#   返回某年( 1970 -- ...),某月( 1 -- 12 ),某日( 1 -- 31 )是星期几( 0 是星期一)。
print(c.weekday(2021, 2, 2))
print("-" * 20)

#   返回一个包含星期几的缩写名的头。 n 指定星期几缩写的字符宽度。
print(c.weekheader(2))
print("-" * 20)

#   返回指定 年份 的指定 月份 的第一天是星期几和这个月的天数。
print(c.monthrange(2021, 3))
print("-" * 20)

#   返回表示一个月的日历的矩阵。 每一行代表一周;此月份外的日子由零表示。 每周从周一开始,除非使用 setfirstweekday() 改变设置。
print(c.monthcalendar(2021, 3))
print("-" * 20)

#   打印由 month() 返回的一个月的日历。
print(c.prmonth(2021, 3))
print("-" * 20)

#   使用 TextCalendar 类的 formatmonth() 以多行字符串形式返回月份日历。
print(c.month(2021, 3))
print("-" * 20)

#   打印由 calendar() 返回的整年的日历。
print(c.prcal(2021))
print("-" * 20)

#   使用 TextCalendar 类的 formatyear() 返回整年的3列的日历以多行字符串的形式。
print(c.calendar(2021))
print("-" * 20)


# 运行结果
6
--------------------
False
--------------------
2
--------------------
1
--------------------
Su Mo Tu We Th Fr Sa
--------------------
(0, 31)
--------------------
[[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]]
--------------------
     March 2021
Su Mo Tu We Th Fr Sa
    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
None
--------------------
     March 2021
Su Mo Tu We Th Fr Sa
    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

--------------------
                                  2021

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

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

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

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

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

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

--------------------

Process finished with exit code 0

以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的点赞和分享哟,谢谢!

未完,待续…

一直都在努力,希望您也是!

更多内容欢迎关注公众号



版权声明:本文为LIFENG0402原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。