我想讓計時器顯示以下 - 小時:分鐘:秒:毫秒。我發現了一個網站教程,展示瞭如何做到這一點,但它不顯示幾小時。這裏是網站:Simple-stopwatch如何使NSTimer顯示小時數:分:秒
這裏是說做代碼:
var timer = NSTimer()
var startTime = NSTimeInterval()
func updateTime()
{
var currentTime = NSDate.timeIntervalSinceReferenceDate()
var elapsedTime : NSTimeInterval = currentTime - startTime
let minutes = UInt8(elapsedTime/60.0)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let fraction = UInt8(elapsedTime * 100)
let strMinutes = String(format: "%02d", minutes)
let strSeconds = String(format: "%02d", seconds)
let strFraction = String(format: "%02d", fraction)
timeLabel.text = "\(strMinutes):\(strSeconds):\(strFraction)"
}
@IBAction func start(sender: AnyObject) {
if !timer.valid {
let aSelector : Selector = 「updateTime」
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true)
startTime = NSDate.timeIntervalSinceReferenceDate()
}
}
@IBAction func stop(sender: AnyObject) {
timer.invalidate()
}
我不完全理解的updateTime()
功能回事。我不明白它是如何將自己轉化爲分,秒......如果有人能給我一個解釋,我將不勝感激。
我的目標是增加幾個小時,但我也想完全理解發生了什麼。
哦!所以變量'elapsedTime'就是以秒爲單位的實際時間量。然後,其餘的只是將'elapsedTime'轉換爲min,secs ...我正確嗎? – Horay
因此,一天將會過去Time/86400? – Horay
@MikeRally你是絕對正確的。不要忘記在計算天數後從elapsedTime中扣除numDays * 86400,或者您可能得到類似36小時的東西:) –