我有一些代码可以在2017年的每个月的最后一天返回。
结果:
2017-01-31
2017-02-28
2017-03-31
2017-04-30
2017-05-31
2017-06-30
2017-07-31
2017-08-31
2017-09-30
2017-10-31
2017-11-30
2017-12-31
但是,我想把它包括2014年到2017年,而不仅仅是2017年。我无法在网上找到任何能够实现这一目标的东西,而且我自己也无法弄明白。非常感谢所有帮助/建议。
这是我的代码:
import arcpy
import datetime
from datetime import timedelta
import time
import calendar
#returns last day of each month
def lastdayofmonth(anyday):
nextmonth = anyday.replace(day=28) + datetime.timedelta(days=4)
return next_month - datetime.timedelta(days=nextmonth.day)
for month in range(1, 13):
print (lastdayofmonth(datetime.date(2017, month, 1)))
答案 0 :(得分:0)
只需添加一个for
循环,然后循环显示这些年份:
for year in range(2014,2018):
for month in range(1, 13):
print (lastdayofmonth(datetime.date(year, month, 1)))
答案 1 :(得分:0)
这可能是你想要的:
<IfModule mod_ibm_ssl.c>
Listen 0.0.0.0:443
<VirtualHost *:443>
SSLEnable
RewriteEngine On
Alias "/images" "C:\IBM\HTTPServer\htdocs\images"
RewriteRule "/images/(.+)\.png$" "/images/$1.png" [PT]
RewriteCond %{DOCUMENT_ROOT}/serverdown.txt -f
RewriteRule ^(.*)$ /404maintenance.html [PT,NC]
</VirtualHost>
</IfModule>
答案 2 :(得分:0)
正如 VIG 所说,你可以运行第二个循环到迭代器年份作为你的预期范围。顺便说一句,我运行你的代码出错,说next_month
没有定义。您的代码应修复如下:
import datetime
from datetime import timedelta
import time
import calendar
#returns last day of each month
def lastdayofmonth(anyday):
nextmonth = anyday.replace(day=28) + datetime.timedelta(days=4)
return nextmonth - datetime.timedelta(days=nextmonth.day)
for j in range(2014,2018):
for month in range(1, 13):
print (lastdayofmonth(datetime.date(j, month, 1)))