【发布时间】:2019-11-01 15:42:27
【问题描述】:
我正在努力创建一个函数,该函数采用输入持续时间和“结束”时间,并根据该标准计算“开始”时间。
示例:如果“结束”时间为下午 5:00,“持续时间”为 30 分钟,则返回的“开始”时间应为下午 4:30。
我在 Int/Date/String 之间进行转换时迷失了方向,因此我可能需要重新考虑我的整个方法。到目前为止,我正在使用以下内容,这只是对 this Stack Overflow post 的一个看法:
var userInputEventEndTime: String
var userInputEventDuration: Int
var userInputEventNeedsToStartTime: String
//Manipulate this function with the input parameters
func makeDate(hr: Int, min: Int, sec: Int) -> Date {
var calendar = Calendar(identifier: .gregorian)
let components = DateComponents(hour: hr, minute: min, second: sec)
let hour = calendar.component(.hour, from: calendar.date(from: components)!)
let minutes = calendar.component(.minute, from: calendar.date(from: components)!)
let seconds = calendar.component(.second, from: calendar.date(from: components)!)
return calendar.date(from: components)!
}
我是否应该将输入字符串转换为 DateComponents 然后进行数学运算?如果是这样,我不确定如何将分钟转换为小时。还是完全走不同的方向?谢谢!
【问题讨论】:
-
您的活动是否仅作为没有日期部分的时间给出?
-
正确;不需要年/月/日上下文。