【问题标题】:Create list with days of month创建包含月份日期的列表
【发布时间】:2021-02-03 12:14:24
【问题描述】:

大家好! 我正在尝试生成包含当月日期的列表,但它生成错误:从 1 月 2 日到 2 月 1 日,我需要列表从当月的第一天到最后一天 - 例如 1 到 31。

我已经在该网站和 Google 上搜索过,但到目前为止我还没有找到任何东西。我做错了什么?

import datetime

year = 2021
month = 1
my_date = datetime.date(year, month, 1)
delta = datetime.timedelta(days=1)
dates = []

while my_date.month == month:
    dates.append((my_date + delta).strftime('%d-%b-%Y'))
    my_date += delta

print(dates)
print(len(dates))

【问题讨论】:

  • 你的逻辑错了。您从 1 月 2 日开始追加

标签: python python-3.x datetime


【解决方案1】:

那是因为您添加了两次日期增量。删除第一个增量添加:

import datetime

year = 2021
month = 1
my_date = datetime.date(year, month, 1)
delta = datetime.timedelta(days=1)
dates = []

while my_date.month == month:
    dates.append((my_date).strftime('%d-%b-%Y'))
    my_date += delta

print(dates)
print(len(dates))

输出:

>>> print(dates)
['01-Jan-2021', '02-Jan-2021', '03-Jan-2021', '04-Jan-2021', '05-Jan-2021', '06-Jan-2021', '07-Jan-2021', '08-Jan-2021', '09-Jan-2021', '10-Jan-2021', '11-Jan-2021', '12-Jan-2021', '13-Jan-2021', '14-Jan-2021', '15-Jan-2021', '16-Jan-2021', '17-Jan-2021', '18-Jan-2021', '19-Jan-2021', '20-Jan-2021', '21-Jan-2021', '22-Jan-2021', '23-Jan-2021', '24-Jan-2021', '25-Jan-2021', '26-Jan-2021', '27-Jan-2021', '28-Jan-2021', '29-Jan-2021', '30-Jan-2021', '31-Jan-2021']
>>> print(len(dates))
31

【讨论】:

    猜你喜欢
    • 2022-08-17
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多