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

使用Python编写的命令行日历应用程序

发布时间:2023-12-04 13:40:54

以下是一个使用Python编写的命令行日历应用程序的示例:

import datetime

def print_calendar(year, month):
    # 获取当前月份的第一天
    first_day = datetime.date(year, month, 1)
    # 获取当前月份的下个月的第一天
    if month == 12:
        next_month = datetime.date(year + 1, 1, 1)
    else:
        next_month = datetime.date(year, month + 1, 1)
    # 计算当前月份的日历表格
    calendar = [[None] * 7 for _ in range(6)]  # 初始化日历表格
    current_day = first_day
    current_row = 0
    current_col = first_day.weekday()
    while current_day < next_month:
        calendar[current_row][current_col] = current_day.day
        current_day += datetime.timedelta(days=1)
        current_col = (current_col + 1) % 7
        if current_col == 0:
            current_row += 1
    # 打印日历表格
    print("{:^20}".format(f"{year}年{month}月"))
    print("-" * 20)
    print("日 一 二 三 四 五 六")
    for row in calendar:
        for day in row:
            if day is not None:
                print("{:>2}".format(day), end=" ")
            else:
                print("  ", end=" ")
        print()

if __name__ == '__main__':
    year = int(input("请输入年份:"))
    month = int(input("请输入月份:"))
    print_calendar(year, month)

这个程序可以根据给定的年份和月份打印该月份的日历表格。它使用了datetime模块来处理日期和时间相关的操作。

以下是一个示例运行结果:

请输入年份:2022
请输入月份:1
     2022年1月      
--------------------
日 一 二 三 四 五 六
                   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                

你可以根据需要修改输入和输出的方式,比如改为从命令行参数获取年份和月份,使用argparse模块来解析命令行参数等。这只是一个简单的示例,你可以根据自己的需求对程序进行扩展和修改。