【发布时间】:2021-08-03 03:27:41
【问题描述】:
1)。当我发送输入startTimeString = "10:00 pm" 和endTimeString = "4:00am" 时,答案应该是360 minutes
2)。当我发送输入startTimeString = "10:00 am" 和endTimeString = "6:00pm" 时,答案应该是480 minutes
这里是方法,这个方法失败了这个输入startTimeString = "10:00 pm"和endTimeString = "4:00am"
func differenceStartAndEndTime(startTimeString: String?, endTimeString: String?) -> Int {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "hh:mm a"
guard let startTime = dateFormatter.date(from: startTimeString ?? "0:00 am"), let endTime = dateFormatter.date(from: endTimeString ?? "0:00 am") else {
return 0
}
let minutes = Int(endTime.timeIntervalSince(startTime) / 60)
print("Here Is The Hours ~ \(minutes/60)")
print("Here Is The Minutes ~ \(minutes%60)")
return minutes > 0 ? minutes : 0
}
【问题讨论】:
-
您应该检查
endTime是否大于startTime。如果没有,请添加“1 天”。旁注,在大多数情况下添加 3600*24 可以,但它不干净,你不会有夏令时更改,因为一天不是 24 小时的必要... -
好的,谢谢提示
标签: swift nsdateformatter