2016-05-12 10 views
-1

私は数日間カウンタを作ろうとしているので、ユーザは自分がどこにいるのかを知ることができます。カウントダウン - iOS /スウィフト

img

私は、開始日と終了日を持っている、と私は私が何をしたい、開始と終了 間のカウントは、彼が(1日目、2日目、3日目で何日にユーザーに伝えることです持っている.... )

let unit:NSCalendarUnit = [.Month, .Day] 
let components = cal!.components(unit, fromDate: startDate, toDate: endDate, options: []) 
var daysCount = components.day 
print(daysCount) 

+0

あなただけの日数を知りたい場合は、 '.Month'はカウントされません。それを '[。日]'としてください。また、最初の日を 'day0'にしたくない場合は、おそらく' 1'を結果に追加したいでしょう。 – Sulthan

+0

ありがとうございますが、私が欲しいのは、彼が何日あるかをユーザーに伝えることです(例えば、day1 ... then翌日--- day2 ... etc) – ynamao

+0

そして、あなたにとって何がうまくいかないのですか? – Sulthan

答えて

0

希望は、このことができます:

let cal = NSCalendar.currentCalendar() 
let currentDate = NSDate() 

let startDate = currentDate.dateByAddingTimeInterval(-7 * 24 * 60 * 60) // 7 days ago 
let endDate = startDate.dateByAddingTimeInterval(10 * 24 * 60 * 60) // 10 days after start date (3 days from now) 

if endDate.compare(currentDate) == .OrderedDescending { 
    // end date is in the future 
    let components = cal.components(.Day, fromDate: startDate, toDate: currentDate, options: []) 
    let daysCount = components.day 
    print("\(daysCount) days passed.") 
} else { 
    // end date is now or in the past 
    let components = cal.components(.Day, fromDate: startDate, toDate: endDate, options: []) 
    let daysCount = components.day 
    print("\(daysCount) days passed. you reached the end date.") 
} 
+0

ありがとうAndré! – ynamao

+0

ようこそ –

0

これを試してみてください:

func daysFromDate(dateA: NSDate, toDate dateB: NSDate) -> Int { 
    let calendar = NSCalendar(identifier: NSCalendarIdentifierGregorian)! 
    calendar.timeZone = NSTimeZone.localTimeZone() 
    calendar.locale = NSLocale.currentLocale() 
    return calendar.components([.Day], fromDate: dateA, toDate: dateB, options: .MatchStrictly).day 
} 
関連する問題