Beim Abrufen von Geburtstag aus dem Facebook SDK bekomme ich diese Zeichenfolge "01/12/1990".Convert Facebook Geburtstag zu Alter swift
Meine Frage ist, wie würden Sie den Geburtstag in das Alter des Benutzers mit dieser Zeichenfolge konvertieren?
Beim Abrufen von Geburtstag aus dem Facebook SDK bekomme ich diese Zeichenfolge "01/12/1990".Convert Facebook Geburtstag zu Alter swift
Meine Frage ist, wie würden Sie den Geburtstag in das Alter des Benutzers mit dieser Zeichenfolge konvertieren?
func yearsBetween(date1: Date, date2: Date) -> Int {
let calendar = Calendar.current
let components = calendar.dateComponents([Calendar.Component.year], from: date1, to: date2)
return components.year ?? 0
}
Erhalten
// Alter
let dateString = "01/12/1990"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"
let date1 = dateFormatter.date(from: dateString)
let date2 = Date()
let age = self.daysBetween(date1:date1!, date2:date2)
Hoffe, es wird Ihnen helfen.
Sie können ein wenig mehr tun, Google, bevor fragen, auch Sie können diese Antworten finden hilfreich:
How do you create a swift Date object
Calculate age from birth date using NSDateComponents in Swift
func calcAge(birthday:String) -> Int {
let dateFormater = DateFormatter()
dateFormater.dateFormat = "MM/dd/yyyy"
let birthdayDate = dateFormater.date(from: birthday)
let calendar: NSCalendar! = NSCalendar(calendarIdentifier: NSCalendar.Identifier.gregorian)
let now: NSDate! = NSDate()
let calcAge = calendar.components(.year, from: birthdayDate!, to: now as Date, options: [])
let age = calcAge.year
return age!
}
Nutzung:
print(calcAge(birthday: "01/12/1990"))
Swift 4
Mein Anwendungsfall ist auch für Facebook und ich habe verwendet UserDefaults die birth zu speichern. Die folgende Funktion ruft das Geburtsdatum aus UserDefaults ab, wie es von der graphRequest zurückgegeben wird, die dasselbe Format wie Ihr Date hat. Die Funktion gibt eine Ganzzahl mit dem Alter des Benutzers zurück.
func getAgeFromBirthdate() -> Int {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM/dd/yyyy"
let birthday = UserDefaults.standard.object(forKey: "birthday")
let birthdayString = birthday as! String
let birthdate = dateFormatter.date(from: birthdayString)
let currentDate = Date()
let calendar: Calendar = Calendar(identifier: .gregorian)
let age = calendar.component(.year, from: birthdate!).distance(to: calendar.component(.year, from: currentDate))
return age
}