我正在try 编写一个程序,该程序将计算给定时间和实际时间的差值,然后在While循环中显示该增量.我已经完成了大部分工作,到目前为止我发现的唯一问题是print语句中的时间变量不会随着循环运行而更新.
import datetime
import time
from os import system
from sys import platform
clear_screen = lambda: system("cls" if platform == "win32" else "clear")
# print("What is the time and date of your event?")
# year = int(input("Year: "))
# month = int(input("Month: "))
# day = int(input("Day: "))
# hour = int(input("Hour: "))
# minute = int(input("Minute: "))
i = 0
year = 2023
month = 1
day = 27
hour = 12
minute = 0
second = 00
today = datetime.datetime.now()
date_entry = datetime.datetime(year, month, day, hour, minute, second)
print(f"The current date & time: {today}")
print(f"The big day is: {date_entry}")
print()
print()
print(f"蒂夫的大日子马上就要到了:")
print()
event_count = date_entry - today
event_hour = event_count.total_seconds() / 3600
event_min = ((event_hour % 1) * (60 / 100)) * 100
event_sec = ((event_min % 1) * (60 / 100)) * 100
def countdown():
print(f"{event_hour:.0f} Hours, {event_min:.0f} Minutes, {event_sec:.0f} seconds until big mode!!!!!")
while i < 50:
i += 1
countdown()
time.sleep(2)
# clear_screen()`
我有一种感觉,打印语句中的时间变量没有重新计算...我曾try 通过将变量移到Countdown()函数中来重新构建程序.这产生了同样的结果.
我期待脚本输出的小时,分钟和秒,直到一个定义的时间.这部分工作得很好.然后暂停2秒(这是可行的),然后在重新计算时间增量后再次打印该语句.如果失败,打印的时间与第一个打印语句中的打印时间完全相同.
您可能还注意到了Clear_Screen().这有点用,它会清除所有的输出.我希望弄清楚在循环中打印的最后一行(即:40小时12分56秒直到大模式!)这是我还没有看太多的东西.如果你有什么建议...
提前感谢您的任何建议.
输出: 当前日期和时间:2023-01-25 19:48:04.383425 大日子是:2023-01-27 12:00:00
蒂夫的大日子马上就要到了:
距离大模式还有40小时12分56秒! 距离大模式还有40小时12分56秒! 距离大模式还有40小时12分56秒! 距离大模式还有40小时12分56秒! 距离大模式还有40小时12分56秒!