我想获取年份的第一天和最后一天,即 python 中每个月的年份范围。
我试过如下:
import datetime, numpy as np
dates = np.arange(np.datetime64('2014-01-01'), np.datetime64('2015-01-01'))
dates = [datetime.datetime.strptime(str(x),"%Y-%m-%d") for x in dates]
DayOfYears = [datetime.datetime.strptime(str(x),"%j") for x in dates]
Months = [datetime.datetime.strptime(str(x),"%B") for x in dates]
我的代码在获取 DayOfYears 和 Months 方面不起作用。 它给出 ValueError: unconverted data remains: 4-01-01 00:00:00
最后,我必须以这种形式打印出结果:
January 01 31
February 32 60
May 122 152
December 335 365
伙计们,这样做的好方法是什么?
编辑:
input_dates = ['2014-01-01', '2014-01-02', '2014-02-03', '2014-02-04', '2014-05-05', '2014-05-06', '2014-05-07', '2014-05-08']
output_answer:
January 1 31
February 32 60
May 122 152.
最佳答案
import calendar
from datetime import date
from dateutil.relativedelta import relativedelta
start = date(2012,1,1)
end = date(2015,1,1)
while start < end:
first_delta = (start - date(start.year, 1, 1)).days + 1
last_delta = (start + relativedelta(days=-1, months=1) - date(start.year, 1, 1)).days + 1
print calendar.month_name[start.month], '%02d' % first_delta, last_delta
start += relativedelta(months=1)
输出:
January 01 31
February 32 60
March 61 91
...
关于python - 在python中获取每个月的年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28035042/