Ios 如何在swift中记录开始和结束时间
我正在尝试编写一个基本的计时器应用程序,它将记录你点击开始的时间和点击结束的时间,并对它们进行比较。到目前为止,我所做的所有尝试都没有打印时间,默认为其原始定义Ios 如何在swift中记录开始和结束时间,ios,swift,Ios,Swift,我正在尝试编写一个基本的计时器应用程序,它将记录你点击开始的时间和点击结束的时间,并对它们进行比较。到目前为止,我所做的所有尝试都没有打印时间,默认为其原始定义 let date = Date() let calendar = Calendar.current let hourTime = calendar.component(.hour, from: date) let minutesTime = calendar.component(.minute, from: date) var Tim
let date = Date()
let calendar = Calendar.current
let hourTime = calendar.component(.hour, from: date)
let minutesTime = calendar.component(.minute, from: date)
var TimeWhileGone=0
@IBAction func EndTime(_ sender: Any) {
var button2Alert = UIAlertController(title: "Title", message: "Your Timer have been going for \(minutesTime-TimeWhileGone) minutes!", preferredStyle: UIAlertControllerStyle.alert)
self.present(button2Alert, animated: true, completion: nil)*/
}
@IBAction func startTime(_ sender: Any) {
TimeWhileGone=minutesTime
}
你需要两件事,你需要两个时间点来比较,一个开始时间和一个结束时间,我知道听起来很简单,但你似乎错过了这些点 你似乎在记录一个永远不会改变的时间点 因此,当调用startTime时,将startTime属性初始化为now ie Date 调用endTime时,您可以使用Date.timeIntervalSince标记它并计算时间差,它为您提供了一个时间间隔 虽然使用简单的模块化数学来计算格式可能很有诱惑力,但我会避免这种情况,因为间隔越大,就越容易出错 相反,我会使用DateComponents格式 有关更多信息,请看一看-虽然它有点过时,但它可以提供一些有关API如何工作的见解 游戏场 因为这些事情可能有点复杂,我倾向于用操场来测试一些基本的想法,所以下面
let startTime = Date()
Thread.sleep(forTimeInterval: 2.0)
let duration = Date().timeIntervalSince(startTime)
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .abbreviated
formatter.allowedUnits = [ .day, .hour, .minute, .second]
formatter.string(from: duration)
我知道,它最终会展示出令人激动的东西,但它提供了这个想法的种子 哦,太棒了,谢谢!我回家后会试试这个,谢谢你的快速反应,我对使用swift还不熟悉,所以这是一个巨大的帮助!
guard let startTime = startTime else {
return
}
let duration = Date().timeIntervalSince(startTime)
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .abbreviated
formatter.allowedUnits = [ .day, .hour, .minute, .second]
let durationFormat = formatter.string(from: duration)
let startTime = Date()
Thread.sleep(forTimeInterval: 2.0)
let duration = Date().timeIntervalSince(startTime)
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .abbreviated
formatter.allowedUnits = [ .day, .hour, .minute, .second]
formatter.string(from: duration)