实现思路
获取开始时间、当前时间,通过当前时间-开始时间=时间差,再通过倒计时的总时长-时间差即可实现!
随着时间的流逝,当前时间会变大,也就导致时间差会变大,当使用总时长-时间差的时候,得到的结果就会越来越小。当结果为0是,即为倒计时结束!
代码实现
导入对应的库
import pygame,time, datetime
秒数转换为小时、分钟、秒函数
# 将秒数转换为小时,分数,秒
def seconds_to_hms(seconds):
# 定义小时、分钟和秒的最大值
hours = seconds // 3600
minutes = int((seconds % 3600) // 60)
remaining_seconds = int(seconds % 60)
return hours, minutes, remaining_seconds
获取当前时间
def getTime():
global year,month,day,hour,minute,second
# 获取当前时间的年月日
year = datetime.datetime.now().year
month = datetime.datetime.now().month
day = datetime.datetime.now().day
hour = datetime.datetime.now().hour
minute = datetime.datetime.now().minute
second = datetime.datetime.now().second
#记录开始时间
startTime = time.time()
# 30分钟答题时间
totalTime=1800
#结束时间
endTime = time.time()
#开始时间与当前时间时间差(进行了多久)
offset_time = endTime-startTime
#总时间-时间差=剩余时间
h,m,s=seconds_to_hms(totalTime-offset_time)
print(str(m)+":"+str(s))
倒计时结束判断
# 自动提交
if offset_time>=totalTime:
easygui.msgbox("本次考试时间到,系统将自动提交!!!")