m0_70680242 2022-07-12 09: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 09:10
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    m0_70680242 2022-07-12 09:26

    的确。。。找到问题了

    a = ['字符串不会是靠顺序读unicode编码判断大小的吧。。。']
    b = ['字符串不会是靠顺序读vnicode编码判断大小的吧。。。']
    if a<b:
        print('真的')
    

    我之前程序上写的是按顺序就到了
    '2021-04-30'
    那个是
    '2021-5-3'
    0比5大。。。。

    回复
查看更多回答(1条)
编辑
预览

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 Open GL ES 的使用
  • ¥15 有人说Java多线程性质是非计算机科班硕士不懂的?
  • ¥15 我如果只想表示节点的结构信息,使用GCN方法不进行训练可以吗
  • ¥15 GPTs营销指令提示词和创建方案
  • ¥15 QT6将音频采样数据转PCM
  • ¥15 本地安装org.Hs.eg.dby一直这样的图片报错如何解决?
  • ¥15 下面三个文件分别是OFDM波形的数据,我的思路公式和我写的成像算法代码,有没有人能帮我改一改,如何解决?
  • ¥15 Ubuntu打开gazebo模型调不出来,如何解决?
  • ¥100 有chang请一位会arm和dsp的朋友解读一个工程
  • ¥50 求代做一个阿里云百炼的小实验
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部