m0_70680242 2022-07-12 17:01 采纳率: 82.2%
浏览 18
已结题

关于#while#和datatime模块的问题,如何解决?

将两个时间点之间所有的天数输出到一个列表


import datetime
def get_date_range(begin,end):
    need_date = []
    append_timedate = datetime.timedelta(days=1)#用于增殖变量
    while begin <= end:
        need_date.append(begin)
        begin_obj = datetime.datetime.strptime(begin,'%Y-%m-%d')#将输入封包成时间元组
        begin = (begin_obj+append_timedate).strftime('%Y-%m-%d')#加上一天后解封
    return need_date
begin_date = "2021-4-28"
end_date = "2021-5-3"
date_list = get_date_range(begin_date,end_date)
print(date_list)

输出结果为2021直接满到12-31
做了断点,bug测试时发现while当时间大于该值时仍然判定为True
故写以下代码测试

begin_date = "2021-5-1"
end_date = "2021-5-3"
if_outof_data = "2021-5-5"
if begin_date <= end_date:
    print("证实可被对比")
if if_outof_data <= end_date:
    print("若输出此结果则证明data大小判断无效")

结果为

"C:\Program Files\Python310\python.exe" G:/python基础题20道开始/025.py
证实可被对比

Process finished with exit code 0

离谱

  • 写回答

2条回答 默认 最新

  • 快乐小土狗 2022-07-12 17:10
    关注

    加两个0就好了:end_date = "2021-05-03"
    begin = (begin_obj+append_timedate).strftime('%Y-%m-%d')得到的格式是yyyy-mm-dd,月数是两位数的,01,02,03这样的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月12日
  • 已采纳回答 7月12日
  • 创建了问题 7月12日

悬赏问题

  • ¥100 无网格伽辽金方法研究裂纹扩展的程序
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题