start = "Nov20"
end = "Jan21"
# Expected output:
["Nov20", "Dec20", "Jan21"]
到目前为止,我尝试了以下方法,但我正在寻找更优雅的方法
from calendar import month_abbr
from time import strptime
def get_range(a, b):
start = strptime(a[:3], '%b').tm_mon
end = strptime(b[:3], '%b').tm_mon
dates = []
for m in month_abbr[start:]:
dates.append(m+a[-2:])
for mm in month_abbr[1:end + 1]:
dates.append(mm+b[-2:])
print(dates)
get_range('Nov20', 'Jan21')
Note: i don't want to use pandas as that's not logical to import such library for generating dates.
日期范围可能跨越不同的年份,因此一种方法是从开始日期循环到结束日期,并将月份增加1,直到达到结束日期
试试这个:
输出:
您可以使用
timedelta
向前推进一个月(31天),但请确保您停留在该月的第一天,否则这些天可能累积起来,最终跳过一个月相关问题 更多 >
编程相关推荐