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):
我正在自学 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):