欢迎访问宙启技术站
智能推送

Python编写一个简单的日历应用程序

发布时间:2023-12-04 21:05:43

以下是一个简单的日历应用程序的Python代码:

import calendar

def print_calendar(year, month):
    # 使用calendar库的monthrange函数获取给定年份月份的总天数和第一天是星期几
    total_days, first_weekday = calendar.monthrange(year, month)
    
    # 使用calendar库的calendar函数生成日历
    cal = calendar.calendar(year)
    
    # 输出日历标题
    print(f"{calendar.month_name[month]} {year}")
    
    # 输出日历表头
    print("Mo Tu We Th Fr Sa Su")
    
    # 根据第一天的星期几,计算第一周前面需要空出的天数
    indent = (first_weekday + 1) * 3
    
    # 输出日历内容
    print(" " * indent, end="")
    
    for day in range(1, total_days + 1):
        # 每个日期占据3个字符的位置
        print(f"{day:2}", end=" ")
        
        # 换行到下一周的开始位置
        if (day + first_weekday) % 7 == 0:
            print()
    
    print("
")

# 使用例子
print_calendar(2022, 12)

这个程序使用了Python的calendar库来生成日历。程序首先使用monthrange函数获取给定年份月份的总天数和第一天是星期几。然后使用calendar函数生成完整的日历。最后,程序根据第一天的星期几来决定第一周前面需要空出多少位置,并依次输出日历的每一天。

使用例子中,我打印了2022年12月的日历。输出结果如下:

December 2022
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