2017-02-27 6 views
1

Ich versuche, eine Funktion zu schreiben, die eine Zeichenfolge (im Format "TT MM JJJJ") und gibt den Tag nach dem einen als Parameter zurückgegeben.Swift - Holen Sie sich das nächste Datum

Zum Beispiel:

let nextDay = getNextDay("31 12 2016") 
print(nextDay) 

Druck würde:

01 01 2017 

Kann mir jemand zeigen, wie dies zu tun? Danke

+0

Wenn Sie sich nicht mit Daten in schnellen gearbeitet, bevor Sie diesen Rahmen nutzen könnten: https://github.com/malcommac/SwiftDate - Es gibt auch eine Menge Antworten hier, dass SO Probleme lösen Arbeiten mit Daten, verwenden Sie einfach die Suchfunktion :-) –

Antwort

5

Hier ist das Code-Snippet kann Ihnen helfen.

//Call method like this 

convertNextDate(dateString: "31 12 2016") 


// Method is here 

func convertNextDate(dateString : String){  
    let dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "dd MM yyyy" 
    let myDate = dateFormatter.date(from: dateString)! 
    let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: myDate) 
    let somedateString = dateFormatter.string(from: tomorrow!) 
    print("your next Date is \(somedateString)") 
} 
+0

+1 für die Verwendung von '.date (byAdding :, Wert :, zu:)'. Viele der Beispiele in Stack Overflow berechnen den nächsten Tag falsch, indem sie '24 * 60 * 60 'Sekunden hinzufügen. –

+0

Vielen Dank @RoboticCat für zu schätzen –

1
class DateHelper 
{ 

    lazy var formatter:DateFormatter = { 
    let formatter = DateFormatter() 
    formatter.dateFormat = "dd MM yyyy" 
    return formatter 
}() 

    lazy var dateComponents:DateComponents = { 
    var dateComp = DateComponents() 
    dateComp.day = 1 
    return dateComp 
}() 

    func getNext(dateString:String) -> String? 
    { 
    if let date  = self.formatter.date(from: dateString), 
     let nextDate = Calendar.current.date(byAdding: self.dateComponents, to: date) 
    { 
     return self.formatter.string(from: nextDate) 
    } 
    return nil 
    } 
} 

DateHelper().getNext(dateString: "31 12 2016") 
Verwandte Themen