【问题标题】:How can I get the last date of month while increasing date on monthly basis? [duplicate]如何在每月增加日期的同时获取月份的最后一个日期? [复制]
【发布时间】:2018-05-14 16:49:28
【问题描述】:

我有以下代码,可以按月递增。但是,在 2 月之后,每个月的最后一天显示为 28。如何在每个月增加的同时获得每个月的实际最后一天。

from dateutil.relativedelta import relativedelta
import datetime
from datetime import date
import time

Start_Date = date(2010, 01, 01)
End_Date = date(2010, 01, 31)
Final_startdate = date(2011, 12, 01)

while Start_Date < Final_startdate:
    print Start_Date
    print End_Date

    Start_Date = Start_Date + relativedelta(months=+1)
    End_Date = End_Date + relativedelta(months=+1)

这是我得到的:

2010-01-01

2010-01-31

2010-02-01

2010-02-28

2010-03-01

2010-03-28

2010-04-01

2010-04-28

2010-05-01

2010-05-28

2010-06-01

2010-06-28

2010-07-01

2010-07-28

2010-08-01

2010-08-28

【问题讨论】:

  • @glibdud :感谢您提及重复的问题。我在那里得到了答案。

标签: python python-2.7


【解决方案1】:

我将 end_date 的最后一行代码更改为下面的代码,它可以工作。我得到了我想要的答案。

End_Date = Start_Date + relativedelta(months=+1,days=-1)

我得到的答案是

2010-01-01

2010-01-31

2010-02-01

2010-02-28

2010-03-01

2010-03-31

2010-04-01

2010-04-30

2010-05-01

2010-05-31

2010-06-01

2010-06-30

2010-07-01

2010-07-31

2010-08-01

【讨论】:

    猜你喜欢
    • 2021-12-14
    • 2020-06-04
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2012-05-29
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多