如何在Python日历Modu中添加一天

2024-09-29 02:27:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我对编码很陌生,请原谅我犯的任何基本错误。我一直在编写这段代码,它使用Python日历模块生成开始日期。一切都很顺利,直到我意识到我也需要一个结束日期。我尝试手动将1添加到开始日期,当我打印输出时,我意识到一旦到了月底,这就行不通了。 这是我得到的错误输出。显然,12月没有32天。 开始日期为2015-12-31。 结束日期为2015-12-32。 我一直在阅读关于日历模块的文档,但是我还没有看到任何关于如何让它工作的东西(对我来说是有意义的)。 到目前为止,我的情况是:

import requests
import json 
import calendar

cal = calendar.Calendar()
for year in range(2015,2016):
    for month in range(1,13):
        monthdays = [d for d in cal.itermonthdays(year,month) if d != 0]
        for day in monthdays:
            str_year = str(year)
            if month < 10:
                str_month = "0" + str(month)
                # print(str_month)
            else:
                str_month = str(month)
                # print(str_month)
            if day < 10:
                str_StartDay = "0" + str(day)
                int_EndDay = day + 1
                if int_EndDay < 10:
                    str_EndDay = "0" + str(int_EndDay)
                else:
                    str_EndDay = str(int_EndDay)
            else:
                str_StartDay = str(day)
                int_EndDay = day + 1
                str_EndDay = str(int_EndDay)
                # print(str_day)
            _STARTDATE = str_year + "-" + str_month + "-" + str_StartDay
            _ENDDATE = str_year + "-" + str_month + "-" + str_EndDay
            # print(_DATE)
            #fun_Phase1(_DATE)
            print("Start date is " + _STARTDATE)
            print("End date is " + _ENDDATE)

提前谢谢。你知道吗


Tags: 模块inimportforif错误yearelse
1条回答
网友
1楼 · 发布于 2024-09-29 02:27:18

谢谢克劳斯。你给我指明了正确的方向。最后我用datetime解决了这个问题。这是密码。希望这能为将来的某个人节省时间。你知道吗

import requests
import json 
import calendar
import datetime

cal = calendar.Calendar()
for year in range(2015,2016):
    for month in range(1,13):
        monthdays = [d for d in cal.itermonthdays(year,month) if d != 0]
        for day in monthdays:
            str_year = str(year)
            int_year = int(year)
            if month < 10:
                str_month = "0" + str(month)
                int_month = int(month)
                # print(str_month)
            else:
                str_month = str(month)
                int_month = int(month)
                # print(str_month)
            if day < 10:
                str_StartDay = "0" + str(day)
                int_day = int(day)
            else:
                str_StartDay = str(day)
                int_day = int(day)
                # print(str_day)
            _MYDATE = datetime.date(int_year,int_month,int_day)
            str_MYDATE = str(_MYDATE)
            print(str_MYDATE)
            _MYDATEPLUSONE = _MYDATE + datetime.timedelta(days=1)
            str_MYDATEPLUSONE = str(_MYDATEPLUSONE)
            print(str_MYDATEPLUSONE)
            print("Start date is " + str_MYDATE)
            print("End date is " + str_MYDATEPLUSONE)

相关问题 更多 >