【发布时间】:2020-08-23 10:27:19
【问题描述】:
我需要每天迭代以下包含此参数的函数,如下所示:
start_date=input("\nStart date: mm/dd/yyyy ")
end_date=start_date
fun(start_date,end_date)
其中 start_date 应该是用户以该格式选择的日期。 End_date 必须等于开始日期,因为我对一日搜索感兴趣。但是,我还需要在其他日子重复这项研究。 我的代码目前正在执行以下操作:
- 输入开始日期。这是我的开始日期。例如:2020 年 8 月 22 日
- 然后设置 end_date 等于 start_date。那么它等于 08/22/2020
- 应用此功能查找 2020 年 8 月 22 日的信息;
- 当它完成时(它包含在我的函数中),请更新日期,加一(即 08/23/2020);
- 在 08/23/2020 重复搜索
我很难找到第二天,也因为可能有几个月有 30、31 和 28/29 天。
您能告诉我如何更新我的代码吗?
【问题讨论】:
-
似乎原则上的问题是要求使用字符串进行计算。但实际上,您应该在读入后立即将日期转换为
datetime.datetime对象(参见datetime.datetime.strptime),以该形式进行所有操作,并且仅在需要时转换回字符串以用于输出目的(参见strftime方法)。 -
这能回答你的问题吗? How to increment a datetime by one day?
-
具体转换为日期时间:
dt = datetime.datetime.strptime('08/22/2020', '%m/%d/%Y'),再次转换回:dt.strftime('%m/%d/%Y'),并进行计算,请参阅几个人发布的链接。 -
参考 timedelta 类。它的唯一目的是在 datetime 对象中添加、减去 days/h/m/s。