player-none 发表于 3 小时前

→Python会诚实地告诉你假期还剩下多少

from datetime import datetime
s, e = ) for s in ['起始', '终止']]
x = e - s
n = datetime.now()
dts =
, s.days, '天', s.seconds // 3600, '小时', s.seconds // 60 % 60, '分钟', s.seconds % 60, '秒', round((s.days * 86400 + s.seconds) / (x.days * 86400 + x.seconds) * 100, 1), '%') for i, s in enumerate(dts)]


本来想写在一行里的,但是那玩意可读性太差,报错找不到在哪{:10_266:}

其实也不是不可以 exec 大法()

exec("from datetime import datetime\ns, e = ) for s in ['起始', '终止']]\nx = e - s\nn = datetime.now()\ndts = \n, s.days, '天', s.seconds // 3600, '小时', s.seconds // 60 % 60, '分钟', s.seconds % 60, '秒', round((s.days * 86400 + s.seconds) / (x.days * 86400 + x.seconds) * 100, 1), '%') for i, s in enumerate(dts)]")


愿大家能在寒假结束前完成寒假作业!享受难得的休闲时光,然后进入史上最短的学期。

运行示例:

= RESTART: C:/Users/Administrator/Desktop/days.py
起始日期:2026 2 4 0 0 0
终止日期:2026 3 4 0 0 0
已过 12 天 14 小时 45 分钟 34 秒 45.1 %
还剩 15 天 9 小时 14 分钟 25 秒 54.9 %


# 打算优化一下,显示一个进度条,配上 os.system('cls') 做成动态效果

player-none 发表于 2 小时前

果然冷清

FishC 发表于 2 小时前

鱼油你好!你提供的代码片段确实有些缺失,但意图很清晰:计算假期剩余时间并显示进度。下面是一个优化版本,添加了进度条和动态刷新效果。

首先,我们使用 datetime 模块处理日期,用 os.system('cls') 清屏实现动态更新(自动适配Windows和Linux/Mac)。代码会每秒更新一次,直到假期结束。

注意:运行后按 Ctrl+C 可以终止程序。

以下是完整代码:

import datetime
import os
import time

def main():
    # 获取用户输入起始和终止日期
    start_str = input("起始日期(格式:年 月 日 时 分 秒,例如:2026 2 4 0 0 0):")
    end_str = input("终止日期(格式:年 月 日 时 分 秒,例如:2026 3 4 0 0 0):")

    # 将字符串转换为datetime对象
    start = datetime.datetime.strptime(start_str, "%Y %m %d %H %M %S")
    end = datetime.datetime.strptime(end_str, "%Y %m %d %H %M %S")

    total_duration = end - start# 假期总时长

    while True:
      now = datetime.datetime.now()

      # 如果当前时间超过终止日期,结束循环
      if now > end:
            os.system('cls' if os.name == 'nt' else 'clear')
            print("假期已经结束!")
            break

      elapsed = now - start# 已过时间

      # 如果当前时间早于起始日期,假期还未开始
      if elapsed.total_seconds() < 0:
            os.system('cls' if os.name == 'nt' else 'clear')
            print("假期还未开始!")
            break

      # 计算进度百分比
      percentage = elapsed.total_seconds() / total_duration.total_seconds() * 100
      percentage = min(percentage, 100)# 限制最大为100%

      # 计算剩余时间
      remaining = end - now

      # 构建进度条(长度50个字符)
      bar_length = 50
      filled_length = int(bar_length * percentage / 100)
      bar = '#' * filled_length + '-' * (bar_length - filled_length)

      # 清屏(跨平台)
      os.system('cls' if os.name == 'nt' else 'clear')

      # 显示进度条和时间信息
      print(f"假期进度: [{bar}] {percentage:.1f}%")
      print(f"已过: {elapsed.days} 天 {elapsed.seconds // 3600} 小时 {elapsed.seconds // 60 % 60} 分钟 {elapsed.seconds % 60} 秒")
      print(f"还剩: {remaining.days} 天 {remaining.seconds // 3600} 小时 {remaining.seconds // 60 % 60} 分钟 {remaining.seconds % 60} 秒")
      print("按 Ctrl+C 退出")

      # 每秒更新一次
      time.sleep(1)

if __name__ == "__main__":
    try:
      main()
    except KeyboardInterrupt:
      print("\n程序已退出")
    except Exception as e:
      print(f"输入错误:{e}")

代码说明:
- 使用 strptime 解析输入日期,确保格式匹配。
- 进度条用 # 表示已完成部分,- 表示剩余部分。
- os.name 判断操作系统,Windows用 cls,其他用 clear 清屏。
- 添加了异常处理,避免输入错误或意外退出。

运行示例:
输入起始和终止日期后,屏幕会动态显示进度条和时间,类似以下效果(每秒刷新):

假期进度: [####################------------------------] 45.1%
已过: 12 天 14 小时 45 分钟 34 秒
还剩: 15 天 9 小时 14 分钟 25 秒

希望这个优化版本能帮助你更好地管理假期时间!享受休闲时光,高效完成作业哦~

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

smallwh 发表于 1 小时前

假期里少见的python贴,必须支持

smallwh 发表于 25 分钟前

import datetime

start = input('起始日期(示例2026-02-17 06:06:06,时间可以省略):')
start_date = datetime.datetime.fromisoformat(start)

end = input('终止日期(示例2026-02-18 06:06:06,时间可以省略):')
end_date = datetime.datetime.fromisoformat(end)

now = datetime.datetime.now()

past = now - start_date
future = end_date - now
duration = end_date - start_date

pastinfo = str(past).replace(':',' ').replace('.',' ').split()
print('已过{1}天{3}小时{4}分钟{5}秒,占{0:.2%}'.format(past/duration,*pastinfo))
futureinfo = str(future).replace(':',' ').replace('.',' ').split()
print('还有{1}天{3}小时{4}分钟{5}秒,占{0:.2%}'.format(future/duration,*futureinfo))
没有任何新功能的代码

player-none 发表于 4 分钟前

smallwh 发表于 2026-2-16 16:27
假期里少见的python贴,必须支持

{:10_256:}其实是老鱼油闲的没事干回来看看
页: [1]
查看完整版本: →Python会诚实地告诉你假期还剩下多少