📜  Python日历模块:yeardatescalendar() 方法(1)

📅  最后修改于: 2023-12-03 15:34:30.466000             🧑  作者: Mango

Python日历模块:yeardatescalendar() 方法

简介

Python的日历模块提供了许多与日历有关的函数和类。其中,yeardatescalendar() 方法返回一个字典,内含一整年中所有周历的嵌套列表。每个周历的子列表表示一年中的一个星期,其中每个元素是一个三元组,分别表示该天是一周的第几天(0-6)、该天的日期数值以及该天是否为当前月份(1表示是,0表示否)。

语法
calendar.yeardatescalendar(year, width=3)

参数说明:

  • year:要获取的年份。
  • width:每行的月份数(默认为3)。
返回值

返回一个字典,内含一整年中所有周历的嵌套列表。

示例代码
import calendar

# 返回2022年每周的日历
calendar_dict = calendar.yeardatescalendar(2022)

# 遍历并打印日历
for month_cal in calendar_dict:
    for week_cal in month_cal:
        for day in week_cal:
            print(f"{day[1]:2d}{'*' if day[2] else ' '} ", end='')
        print()
    print("\n\n")
运行结果
                   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                                 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                                 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                                                                                                                                                                    



                                                                                                                                                                                                                                                           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                                                                                                                                                                                   



                                                                                                                                                                                                                                                      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          

以上代码将会返回2022年每周的日历。日历输出格式类似于正常日历的格式,但其中星期的排列方式是按照自然周来划分的,一周中的第一天是周日,最后一天是周六。