万年历python代码

以下是一个简单的万年历Python代码:

# 导入datetime模块
import datetime

# 获取当前日期
now = datetime.datetime.now()

# 获取当前年份和月份
year = now.year
month = now.month

# 打印当前年份和月份
print("当前年份:", year)
print("当前月份:", month)

# 获取当前月份的第一天是星期几
first_day = datetime.datetime(year, month, 1)
weekday = first_day.weekday()

# 打印当前月份的日历
print("日 一 二 三 四 五 六")
for i in range(weekday):
    print("   ", end="")
for i in range(1, 32):
    if i <= datetime.datetime(year, month, 1).strftime("%d"):
        print("{:2d}".format(i), end=" ")
    else:
        break
    if (i + weekday) % 7 == 0:
        print()
print()

这个代码会输出当前年份和月份,以及当前月份的日历。

接下来我会对这个代码进行详细的解释。

首先,我们导入了Python的datetime模块,这个模块提供了处理日期和时间的函数和类。然后,我们使用datetime.datetime.now()函数获取当前日期和时间,并将其赋值给变量now。

接着,我们使用now.year和now.month获取当前年份和月份,并将它们分别赋值给变量year和month。

然后,我们使用datetime.datetime(year, month, 1)函数获取当前月份的第一天,并使用weekday()方法获取这一天是星期几。这个weekday变量的值是0到6之间的整数,分别代表星期一到星期日。

接下来,我们使用一个for循环来打印日历。首先,我们打印一行“日 一 二 三 四 五 六”,这是日历的表头。然后,我们使用一个for循环来打印当前月份的第一天之前的空格,这些空格是为了对齐日历的格式。接着,我们使用另一个for循环来打印当前月份的日期。如果当前日期小于等于当前月份的第一天,我们就打印这个日期,否则我们就跳出循环。如果当前日期是星期六,我们就打印一个换行符,以便在下一行继续打印日历。

最后,我们打印一个空行,以便在日历的下面留出一些空白。