我需要能够在python中准确找到两个日期之间的月份。我有一个可行的解决方案,但它不是很好(如优雅)或快速。
dateRange = [datetime.strptime(dateRanges[0], "%Y-%m-%d"), datetime.strptime(dateRanges[1], "%Y-%m-%d")]
months = []
tmpTime = dateRange[0]
oneWeek = timedelta(weeks=1)
tmpTime = tmpTime.replace(day=1)
dateRange[0] = tmpTime
dateRange[1] = dateRange[1].replace(day=1)
lastMonth = tmpTime.month
months.append(tmpTime)
while tmpTime < dateRange[1]:
if lastMonth != 12:
while tmpTime.month <= lastMonth:
tmpTime += oneWeek
tmpTime = tmpTime.replace(day=1)
months.append(tmpTime)
lastMonth = tmpTime.month
else:
while tmpTime.month >= lastMonth:
tmpTime += oneWeek
tmpTime = tmpTime.replace(day=1)
months.append(tmpTime)
lastMonth = tmpTime.month
因此,为了说明一下,我在这里正在做的是获取两个日期并将其从iso格式转换为python datetime对象。然后,我在开始日期时间对象中添加一个星期,并检查月份的数值是否较大(除非月份是12月,否则它将检查日期是否较小),如果数值较大,则将其附加到列表中数月之久,一直循环浏览,直到我到达结束日期为止。
它完美地工作,只是似乎不是一个好方法...
翻翻过去那场雪
一只斗牛犬
相关分类