给定两个日期格式的输入,表示事件的开始和开始:
例如:23:59
和23:10
如何手动计算时间跨度,我的意思是这个事件的持续时间?
你可以考虑一下界面:
void timeSpan(int hourStart, int minutesStart, int hourEnd, int minutesEnd);
给定两个日期格式的输入,表示事件的开始和开始:
例如:23:59
和23:10
如何手动计算时间跨度,我的意思是这个事件的持续时间?
你可以考虑一下界面:
void timeSpan(int hourStart, int minutesStart, int hourEnd, int minutesEnd);
这真的是你想要的吗?
endh,endm := split(':',endtime)
starth,startm := split(':',starttime)
diffm := endm-startm
diffh := endh-starth
if (diffm<0)
diffm += 60
diffh -= 1
编辑
经过评论中的讨论:如果开始时间和结束时间仅以 HH:MM 给出,并且结束时间 < 开始时间 OQ 希望我们假设,结束时间是第二天(不是 +2 天,+3 天,...) . 在这种情况下,我们需要:
if (diffh<0)
diffh += 24
通过“手动”,我假设您的意思是没有库来解析时间。
将时间转换为分钟,然后减去它们:
start = "23:10"
end = "23:59"
s = parseInt(start.substr(0, 2)) * 60 + parseInt(start.substr(3, 2))
e = parseInt(end.substr(0, 2)) * 60 + parseInt(end.substr(3, 2))
diff = e - s
如果开始日期晚于结束日期,则会得到否定结果。如果这意味着结束时间是第二天,您可以添加 24*60 分钟:
if diff < 0
diff += 24*60
如果这意味着时间只是交换,你可以得到结果的绝对值:
diff = abs(diff)