我是 swift 的新手,我正在自学。我知道通常会有示例代码,但我非常迷茫。我正在尝试编写一个实例方法 advance
,它将放置在 ClockTime
类中。该方法接受分钟数作为其参数,并将您的对象及时向前移动该分钟数。经过的分钟数可以是任何非负数,甚至可以是一个很大的数字,例如 500 或 1000000。如有必要,您的对象可能会换行到下一个小时或一天,或者它可能会从早上 ("AM") 换行到晚上(“PM”),反之亦然。
注意:ClockTime
对象不关心今天是星期几;如果从晚上 11:59 提前 1 分钟,则变为凌晨 12:00。
例如,以下调用将产生以下结果:
ClockTime time = new ClockTime(6, 27, "PM");
time.advance(1); // 6:28 PM
time.advance(30); // 6:58 PM
最佳答案
你可能想要这样的东西:
struct ClockTime {
var hour: Int {
return components.hour!
}
var minute: Int {
return components.minute!
}
private var internalTime = Date()
private var components: DateComponents {
return Calendar.current.dateComponents([.hour, .minute], from: internalTime)
}
mutating func advance(by minutes: TimeInterval) {
internalTime.addTimeInterval(minutes * 60)
}
}
关于swift - 写一个实例方法提前那些分钟的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40332443/