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

使用Python实现一个简单的日历应用程序

发布时间:2023-12-04 11:23:21

日历应用程序可以帮助用户查看特定日期的详细信息,如星期几、该月的日子和提醒事项等。在Python中,我们可以使用datetime模块来实现日历应用程序。

首先,我们可以创建一个函数来打印特定年份和月份的日历。

import datetime

def print_calendar(year, month):
    # 打印日历标题
    print("{:^20}".format(datetime.date(year, month, 1).strftime("%B %Y")))
    print("-" * 20)
    print("Mon Tue Wed Thu Fri Sat Sun")

    # 找到该月的第一天是星期几
    first_day = datetime.date(year, month, 1).weekday()

    # 找到该月的总天数
    total_days = datetime.date(year, month + 1, 1) - datetime.date(year, month, 1)

    # 填充空白天数
    for i in range(first_day):
        print("{:>3}".format(" "), end=" ")
    
    # 打印日期
    for day in range(1, total_days.days + 1):
        print("{:>3}".format(day), end=" ")

        # 换行
        if (day + first_day) % 7 == 0:
            print()

    print("
")

接下来,我们可以编写主函数来调用print_calendar函数。

def main():
    # 获取当前日期
    today = datetime.date.today()

    while True:
        # 提示用户输入年份和月份
        year = int(input("请输入年份(输入0退出):"))
        if year == 0:
            break

        month = int(input("请输入月份:"))

        # 调用函数打印日历
        print_calendar(year, month)

最后,我们可以在主函数中调用main函数。

if __name__ == "__main__":
    main()

使用示例:

请输入年份(输入0退出):2022

请输入月份:11

November 2022

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

Mon Tue Wed Thu Fri Sat Sun

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退出):2022

请输入月份:12

December 2022

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

Mon Tue Wed Thu Fri Sat Sun

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

这样,我们就实现了一个简单的日历应用程序。用户可以输入年份和月份,程序将打印出该月份的日历。