从pd.date_range('2016-01', '2016-05', freq='M', ).strftime('%Y-%m')上个月开始2016-04,但我期待它2016-05.在我看来,这个函数的行为与range方法类似,其中end参数不包含在返回数组中.
有没有办法在返回的数组中包含结束月份,而不处理结束月份的字符串?
我需要实现代码,这将帮助我获得两个日期之间的月份列表.
我已经有了代码,它将给出月份增量,即月份数.
实际上,我需要获得两个日期之间的月份列表的方法.
这是获得月份增量的代码.
import calendar
import datetime
def calculate_monthdelta(date1, date2):
def is_last_day_of_the_month(date):
days_in_month = calendar.monthrange(date.year, date.month)[1]
return date.day == days_in_month
imaginary_day_2 = 31 if is_last_day_of_the_month(date2) else date2.day
monthdelta = (
(date2.month - date1.month) +
(date2.year - date1.year) * 12 +
(-1 if date1.day > imaginary_day_2 else 0)
)
print monthdelta
return monthdelta
date2 = datetime.datetime.today()
date1 = date2.replace(month=01)
calculate_monthdelta(date1, date2)
Run Code Online (Sandbox Code Playgroud)
现在我需要一种方法来获得相同的月份列表.
任何帮助表示赞赏如果有任何方法可以获得两个日期之间的月份列表.
注意:除了我在这里使用的代码之外,请提出任何建议(如果有的话).