每月生成特定日期的列表

时间:2019-03-12 13:53:15

标签: python datetime

我想获取11月至3月这段时间内每个月的第1、6、11、16、21、26天的列表。

但是,我所知道的唯一代码会计算开始日期和结束日期之间的5天间隔,这不会产生理想的结果。

daterange = pd.date_range('1982-11-01','1983-03-30' , freq='5D') 
daterange = daterange.union([daterange[-1] + 1])  
daterange = [d.strftime('%Y-%b-%d') for x in daterange]

2 个答案:

答案 0 :(得分:1)

我对您想要的东西感到困惑。

daterange = pd.date_range('1982-11-01','1983-03-30', freq='5D')

for d in daterange:
    print(d)

输出:

1982-11-01 00:00:00
1982-11-06 00:00:00
1982-11-11 00:00:00
1982-11-16 00:00:00
1982-11-21 00:00:00
1982-11-26 00:00:00
1982-12-01 00:00:00
1982-12-06 00:00:00
1982-12-11 00:00:00
...

答案 1 :(得分:0)

您没有提供太多有关预期输出的信息,但是简单的for循环可以获取您想要的日期列表:

import datetime

periods = [(1982, 11), (1982, 12), (1983, 1), (1983, 2), (1983, 3)]
date_list = [
    datetime.date(y, m, d)
    for y, m in periods
    for d in [1, 6, 11, 16, 21, 26]]

您正在寻找什么吗?