You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python时间递增问题求助:每180次递增1小时功能未生效

问题分析与修复方案

核心问题

你的代码里有三个关键问题导致时间始终不变:

  • neat_time在循环外面只计算了一次,后面循环打印的都是同一个固定时间
  • 代码里的ihour变量根本没定义,运行时会直接报错
  • 剩余值的计算逻辑错了,c - 180不符合你想要的输出结果

修复后的代码

from datetime import datetime, timedelta

def hourly_time_formula(self):
    c = self.cases
    # 初始化第一次要显示的时间:当前时间加1小时
    current_time = datetime.now() + timedelta(hours=1)
    if c > 180:
        while c >= 180:
            c -= 180
            # 把时间格式化成12小时制带am/pm,和你示例的格式对齐
            neat_time = current_time.strftime("%I:%M%p").lower()
            print(f"{c} should be remaining at {neat_time}")
            # 每次循环后把时间再加1小时
            current_time += timedelta(hours=1)

修改要点说明

  1. 动态更新时间:把时间变量放到循环逻辑里,每次循环都给时间加1小时,这样打印的时间才会逐次递增
  2. 修正剩余值计算:直接用递减后的c作为剩余值,刚好匹配你示例里的输出逻辑
  3. 调整时间格式:用%I输出12小时制的小时数,%p获取上午/下午标识,转小写后和你给的示例格式一致
  4. 清理无效代码:删掉没定义的ihour +=1,直接操作时间变量更直观

测试效果

当self.cases=540,当前时间是下午1:00时,输出会和你预期的一样:

360 should be remaining at 02:00pm
180 should be remaining at 03:00pm
0 should be remaining at 04:00pm

内容的提问来源于stack exchange,提问作者C R E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 08:17:13