Pseudocode 手动时间跨度
给定两个日期格式的输入,表示事件的开始和结束: 例如:Pseudocode 手动时间跨度,pseudocode,timespan,Pseudocode,Timespan,给定两个日期格式的输入,表示事件的开始和结束: 例如:23:59和23:10 如何手动计算时间跨度,我指的是该事件的持续时间 你可以考虑一下界面: void timeSpan(整数小时开始、整数分钟开始、整数小时结束、整数分钟结束)这真的是你想要的吗 endh,endm := split(':',endtime) starth,startm := split(':',starttime) diffm := endm-startm diffh := endh-starth if (diffm&
23:59
和23:10
如何手动计算时间跨度,我指的是该事件的持续时间
你可以考虑一下界面:
void timeSpan(整数小时开始、整数分钟开始、整数小时结束、整数分钟结束)代码>这真的是你想要的吗
endh,endm := split(':',endtime)
starth,startm := split(':',starttime)
diffm := endm-startm
diffh := endh-starth
if (diffm<0)
diffm += 60
diffh -= 1
endh,endm:=split(“:”,endtime)
starth,startm:=拆分(“:”,starttime)
diffm:=endm startm
diffh:=结束开始
如果(diffm所说的“手动”,我假设您的意思是没有库来解析时间
将时间转换为分钟,然后减去:
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
如果开始日期晚于结束日期,则结果为负值。如果这意味着结束时间是下一天m,则可以添加24*60分钟:
if diff < 0
diff += 24*60
如果diffh如果开始和结束以HH:MM给出,这是不可能的!如果end
表示第二天的小时,这是可能的。那么你的意思是结束=23:10,开始=23:59?你应该更新你的问题以考虑到这一点。因为我们不知道,是第二天23:10还是+2天还是+3天……我更新了我的答案以包含这一点。@Richard:以分钟为单位的时间跨度。如果开始分钟数小于结束分钟数,则计算正确?@Richard:如果开始时间在结束时间之后,则会得到一个负结果。如果这意味着结束时间是第二天,则可以在结果上加上24*60分钟以获得正确的结果。如果这意味着时间刚刚交换,则可以get是结果的绝对值。
if diff < 0
diff += 24*60
diff = abs(diff)