2016-07-28 5 views
2

Ich habe eine App, in der ich einige Daten zeigen möchte, wenn es Samstag oder Sonntag ist. Eigentlich habe ich eine segmentierte Steuerung und wenn ich eine meiner Optionen drücke (was das Wochenende sein wird), möchte ich prüfen, ob es Samstag oder Sonntag ist, sondern nur das erste Wochenende.Wie kann ich das nächste Wochenende finden Swift

Dies ist, was ich für meine erste Option in segmentierten Steuer getan haben das aktuelle Datum zu nehmen

dateevent ist eine Variable, die ich zu überprüfen, um, wenn die current ist current erklärt die current

sein
if dateevent.earlierDate(self.currentDate).isEqualToDate(self.currentDate){ 

    if NSCalendar.currentCalendar().isDate(dateevent, equalToDate: self.currentDate, toUnitGranularity: .Day){ 

           //Do something 
          } 

         } 

Antwort

2

Zuerst wird die Anzahl der Tage finden NSDateComponentsweekday Eigenschaft hinzufügen und dann können Sie dateByAddingComponents(_:toDate:options:) verwenden.

let today = NSDate() 
let calendar = NSCalendar.currentCalendar() 

let todayWeekday = calendar.component(.Weekday, fromDate: today) 

let addWeekdays = 7 - todayWeekday // 7: Saturday number 
var components = NSDateComponents() 
components.weekday = addWeekdays 

let nextSaturday = calendar.dateByAddingComponents(components, toDate: today, options: .MatchFirst) 
+0

Hallo nicht getestet ich Ihren Code und ich die Daten gedruckt, kehrte es Samstag, aber wenn ich versuche, vergleiche es Vergleiche die Zeit auch, weißt du, wie kann ich nur das Datum vergleichen? –

+0

ok vergiss ich fand es heraus: P –

0

Erweiterung für Tag der Woche bekommen

func dayOfTheWeek() -> String? { 
    let dateFormatter = NSDateFormatter() 
    dateFormatter.locale = NSLocale(localeIdentifier: "en_US") 
    dateFormatter.dateFormat = "EEEE" 
    return dateFormatter.stringFromDate(self) 
} 

dann können Sie nur zählen, wie viele Tage tun müssen, yo t o Wochenende, und fügen Sie NSDate

NSDate().dateByAddingTimeInterval(60 * 60 * 24 * daysFromTodayToWeekend) 
3

Vom Apple docs:

Wenn das Datum in ein Wochenende fällt, können Sie die rangeOfWeekendStartDate:interval:containingDate: Methode können das Startdatum dieses Wochenende Zeit, um bestimmen . Andernfalls können Sie die Methode nextWeekendStartDate:interval:options:afterDate: verwenden, um das Startdatum des nächsten oder vorherigen Wochenendes zu ermitteln.

+0

Wenn Sie mich mit einem Beispiel helfen könnte, wäre es toll, weil ich es zu benutzen versucht, aber ich konnte Thanx –

Verwandte Themen