2016-05-26 21 views
0

たとえば、真夜中までに何時間残ったかなどを数えたいと思います。カウントダウンタイマーの作成に関するチュートリアルがたくさん見つかりましたが、左の時間を計算するためのものは見つかりませんでした。 アイデアはどうすればいいですか?スウィフトでの残り時間の計算

ありがとうございます!

答えて

3
import Foundation 

let calendar = NSCalendar.currentCalendar() 
let noonToday = calendar.dateBySettingHour(12, minute: 0, second: 0, ofDate: NSDate(), options: [])! 
let noonishTomorow = calendar.dateByAddingUnit(.Day, value: 1, toDate: noonToday, options: [])! 
let midnight = calendar.startOfDayForDate(noonishTomorow) 

let components = calendar.components([.Hour, .Minute], fromDate: NSDate(), toDate: midnight, options: []) 
let hoursUntilMidnight = components.hour 
let minutesUntilMidnight = components.minute 

あなたは、それは常に私が上そうであるように、Appleは常に、代わりに正午での作業をお勧め理由です...など、時にはそれが二回存在する、存在しないため、「深夜」には本当に注意する必要があります。

明示的に時間を深夜に設定してから引き算するように指示するANYの答えは避けてください。あなたはちょうど時間を言ったが、あなたがそれをする方法を見なければならない場合に備えて、私はあなたに分を与えた。

+0

OS Xを使用している場合は、 'Foundation'インポートがあります。iOSを使用している場合は、既にUIKitを含むようにその行をオフにしてください。 – Gargoyle

0

簡単なソリューション:

let now = NSCalendar.currentCalendar().componentsInTimeZone(NSTimeZone.defaultTimeZone(), fromDate: NSDate()) 
let hoursTillMidnight = 24 - now.hour 

print(hoursTillMidnight) 

これは分のようなアカウントのものになりません。午後1時01分と午後1時59分は深夜まで11時間です。あなたが望むなら、時間を上下に丸めることができます。