计算两个输入时间之间的时间差
Calculating the time difference between two inputted times
我开发了一个使用用户输入要求两个特定时间(开始时间和结束时间)的程序。
它的格式为 xx:yy or hours:minutes
我希望计算两个给定时间之间的差异并以两种形式打印(正确的是{xx:yy},不正确的是{xx 小时和 yy 分钟}
我试过这个来获取用户输入:
start1 = int(input("1st Start Time: "))
end1 = int(input("1st EndTime: "))
这里的问题是冒号不能转换成数字,所以不能简单地相互减去。
据您所知,此程序用于计算从开始到结束的工作时间。
所以我想让用户输入开始和结束时间并得到结果,同样的事情十次然后将它(所有工作时间)相加来创建最终工作时间!还应该有一个选项可以随时通过键入“完成”来结束它并获得最终总和,而不必完成所有十个迷你工作时间。
您可以接受用户的输入并将其转换为 DateTime 对象。然后简单地减去这两个值。
您可以将这些值存储在您的程序中,并处理对这些值求和的逻辑并处理您的“完成”要求。
from datetime import datetime, timedelta
start = 'abcd'
end = '14:31'
try:
s = datetime.strptime(start, "%H:%M")
e = datetime.strptime(end, "%H:%M")
delta = e - s
print(delta)
print(f"{str(delta).split(':')[0]} Hours and {str(delta).split(':')[1]} Minutes")
except Exception as UserInputError:
print(f"Could not parse time from user input. Error: {UserInputError}")
#Properly: 2:01:00
#Improperly: 2 Hours and 01 Minutes
# With Bad input:
# Could not parse time from user input. Error: time data 'abcd' does not match format '%H:%M'
我开发了一个使用用户输入要求两个特定时间(开始时间和结束时间)的程序。
它的格式为 xx:yy or hours:minutes
我希望计算两个给定时间之间的差异并以两种形式打印(正确的是{xx:yy},不正确的是{xx 小时和 yy 分钟}
我试过这个来获取用户输入:
start1 = int(input("1st Start Time: "))
end1 = int(input("1st EndTime: "))
这里的问题是冒号不能转换成数字,所以不能简单地相互减去。
据您所知,此程序用于计算从开始到结束的工作时间。
所以我想让用户输入开始和结束时间并得到结果,同样的事情十次然后将它(所有工作时间)相加来创建最终工作时间!还应该有一个选项可以随时通过键入“完成”来结束它并获得最终总和,而不必完成所有十个迷你工作时间。
您可以接受用户的输入并将其转换为 DateTime 对象。然后简单地减去这两个值。
您可以将这些值存储在您的程序中,并处理对这些值求和的逻辑并处理您的“完成”要求。
from datetime import datetime, timedelta
start = 'abcd'
end = '14:31'
try:
s = datetime.strptime(start, "%H:%M")
e = datetime.strptime(end, "%H:%M")
delta = e - s
print(delta)
print(f"{str(delta).split(':')[0]} Hours and {str(delta).split(':')[1]} Minutes")
except Exception as UserInputError:
print(f"Could not parse time from user input. Error: {UserInputError}")
#Properly: 2:01:00
#Improperly: 2 Hours and 01 Minutes
# With Bad input:
# Could not parse time from user input. Error: time data 'abcd' does not match format '%H:%M'