原码我写得太烦锁,求简化。
本帖最后由 checkily 于 2018-1-31 10:37 编辑题目要求:
输入一个开始时间,一个结束时间,计算两者的时间差。如果结束时间小于开始时间,则结束时间为下一天。
例如:
开始时间:12:12:12
结束时间:14:23:23
时间差为:7871
while True:
starttime=input("please input start time:").split(":")
starthour,startminute,startsecond=int(starttime),int(starttime),int(starttime)
if starthour>24 or startminute>60 or startsecond>60:
print("input error")
continue
stoptime=input("please input stop time:").split(":")
stophour,stopminute,stopsecond=int(stoptime),int(stoptime),int(stoptime)
if stophour>24 or stopminute>60 or stopsecond>60:
print("input error")
continue
if stophour<starthour:
stophour+=24
seconds=(stophour-starthour)*3600+(stopminute-startminute)*60+(stopsecond-startsecond)
print("seconds:%d" % seconds)
break
else:
seconds=(stophour-starthour)*3600+(stopminute-startminute)*60+(stopsecond-startsecond)
print("seconds:%d" % seconds)
break
要求加入:如果只是结束时间输入错误,不用重新输入开始时间。另外输入格式错误,要提示“输入格式错误,请以00:00:00的格式输入” 哦 {:10_330:} 这个你先把输入格式化成时间格式 然后操作
datetime模块有时间格式化的方法 sky 发表于 2018-1-31 10:41
哦这个你先把输入格式化成时间格式 然后操作
datetime模块有时间格式化的方法
额。。。还没学,所以觉得写起来总觉得别扭。应该怎样写? 本帖最后由 sky 于 2018-1-31 10:50 编辑
checkily 发表于 2018-1-31 10:42
额。。。还没学,所以觉得写起来总觉得别扭。应该怎样写?
from datetime import datetime
t1 = "12:12:12"
t2 = "14:23:23"
a = datetime.strptime(t1, "%H:%M:%S")
b = datetime.strptime(t2, "%H:%M:%S")
c = b - a
print(c.seconds)
基本的方法是这样的 剩下的逻辑 你试试 基本的模块使用方法要学会网上搜索 看文档
如果不用datetime模块可以这样考虑:
将两个时间都转为秒,并将两个秒数相减,如果小于0,则加上86400,或秒数相减对86400取模(%) sky 发表于 2018-1-31 10:49
基本的方法是这样的 剩下的逻辑 你试试 基本的模块使用方法要学会网上搜索 看文档
果然简化了许多{:10_275:}
页:
[1]