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日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题