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

Python:基于时间戳计算满值前的进度及百分比实现

基于时间戳计算满值进度的实现方案

要实现基于时间戳计算当前能量值及占满值的百分比,核心逻辑是线性比例计算:假设能量从0开始匀速增长,在time_end时刻达到max_energy,当前时间time_now的进度由已消耗的充能时长占总充能时长的比例决定。

完善后的代码

from datetime import datetime

def full_energy():
    time_now = 1666650096  # 当前时间戳(会实时更新)
    time_end = 1666679529   # 能量充满的目标时间戳
    max_energy = 50
    time_start = 1666620663  # 充能起始时间戳(能量为0的时刻,需替换为真实值)
    
    # 计算总充能时长与已充能时长(秒)
    total_duration = (datetime.utcfromtimestamp(time_end) - datetime.utcfromtimestamp(time_start)).total_seconds()
    elapsed_duration = (datetime.utcfromtimestamp(time_now) - datetime.utcfromtimestamp(time_start)).total_seconds()
    
    # 处理边界情况:避免除以0,或当前已充满
    if total_duration <= 0 or elapsed_duration >= total_duration:
        current_energy = max_energy
        progress_percent = 100.0
    else:
        # 计算进度比例
        progress_ratio = elapsed_duration / total_duration
        current_energy = round(max_energy * progress_ratio)  # 能量取整
        progress_percent = round(progress_ratio * 100, 1)    # 百分比保留一位小数
    
    # 按要求格式输出
    print(f"{current_energy}/{max_energy} ({progress_percent}%)")

full_energy()

关键逻辑说明

  1. 时间差计算:通过datetime.utcfromtimestamp将时间戳转换为UTC时间对象,计算总充能时长(从time_start到time_end)和已充能时长(从time_start到time_now)。
  2. 进度比例:用已充能时长除以总充能时长得到进度比例,再分别计算当前能量值和百分比。
  3. 边界处理:当总时长为0或已超过充能结束时间时,直接返回满值和100%进度。

注意事项

  • time_start是充能开始的时间戳(能量为0的时刻),需要根据实际场景替换为真实值,示例中该值是根据输出反推的中间点时间。
  • 如果能量恢复不是从0开始,只需调整time_start为对应起始能量的时间点,或修改计算逻辑为(当前能量 + 增长速率 * 已过去时间)。

内容的提问来源于stack exchange,提问作者CuriousDev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:35:18