python 嵌套 while 循环和日期时间

python nested while loops and datetime

我正在自学 python ATBS。我没有花 45 分钟在 excel 中输入一堆重复的数据,而是花了过去 90 分钟未能编写一个简单的日历脚本。

从值“2012-09-01”和“2012-09-30”开始,我希望每行将月份值增加 1,它达到 12,此时年份值增加 1,直到日期 2018-12-31.

例如

”2012-09-01 2012-09-30 2012-10-01 2012-10-31 2012-11-01 2012-11-30 2012-12-01 2012-12-31

这是我的代码,它在 2012-12-31 停止。

import datetime

year = 2012
month = 9
day_start = 1
day_end = 31

while year <= 2018:
    while month <= 12:
        if month == 4 or month == 6 or month == 9 or month == 11:
            day_end = 30
        else:
            day_end = 31
        print(datetime.date(year, month, day_start), " ", datetime.date(year, month, day_end))
        month = month + 1
year = year + 1

非常感谢任何帮助!

看看这个。使用 calendar 库检测闰年。

import datetime
import calendar

year = 2012
month = 9
day_start = 1
day_end = 31

while year <= 2018:
    while month <= 12:
        if month == 4 or month == 6 or month == 9 or month == 11:
            day_end = 30
        elif month == 2:
            day_end = 29 if calendar.isleap(year) else 28
        else:
            day_end = 31
        print(datetime.date(year, month, day_start), " ", datetime.date(year, month, day_end))
        month = month + 1
    year = year + 1
    month = 1

if month == 4 or month == 6 or month == 9 or month == 11:

可以简写为:

if month in (4, 6, 9, 11):