根据特定格式获取两个日期之间的月份列表

αԋɱҽԃ αμєяιcαη
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')

注意:我不想使用熊猫,因为导入这样的库来生成日期是不合逻辑的。

托马斯·韦勒

您可以使用timedelta提前一个月(31 天),但请确保您停留在该月的 1 号,否则这些天数可能会累加并最终跳过一个月。

from datetime import datetime
from datetime import timedelta

def get_range(a, b):
    start = datetime.strptime(a, '%b%y')
    end = datetime.strptime(b, '%b%y')
    dates = []
    while start <= end:
        dates.append(start.strftime('%b%y'))
        start = (start + timedelta(days=31)).replace(day=1)  # go to 1st of next month
    return dates

dates = get_range("Jan20", "Jan21")
print(dates)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在oracle中获取特定月份的两个日期之间的日期列表

如果DATE为特定格式,则返回两个日期之间的天数(NOT DATE)

SQL查询以获取两个日期之间月份的日期范围列表

获取两个日期之间月份,年份格式的所有季度

使用jquery以(mm / dd / yyyy)格式获取两个日期之间的月份差异

如何获取两个日期之间的月份和年份列表

如何在Java中获取两个日期之间的月份列表

如何获取年份和两个日期之间的年份列表的月份名称

如何获取SQL Server中两个日期之间的月份和年份的列表

获取两个日期之间的月份最后几天的列表?

获取两个日期之间特定月份和年份的天数 SQL

JavaScript:获取两个日期之间的所有月份?

获取两个日期之间的所有月份

在TSQL中获取两个日期之间的月份

sparql获取两个日期之间的所有月份

Oracle sql - 获取两个日期之间的月份 ID

在两个日期之间扩展月份

两个日期之间月份的差异

获取SQL中两个日期之间的日期列表

Rails日期以特定格式在2个日期之间

如何根据我的时区以特定格式获取日期

有两个日期。如何创建这些日期之间的月份间隔列表?

Excel - 两个日期之间特定日期和月份的出现次数?

获取两个日期之间的季度列表(SQL)

查找两个日期之间的月份和日期差异

获取两个日期之间的日期

检查某些特定月份是否介于data.table的两个日期列之间

SQL获取月份在表中两个日期之间的名称

获取两个日期之间唯一的月份和年份数组