将 Facebook 生日转换为年龄 swift
Convert facebook birthday to age swift
从 Facebook SDK 检索生日时,我得到这个字符串“01/12/1990”。
我的问题是,如何使用此字符串将生日转换为用户的年龄?
你可以在提问前多做一点Google,你可能会发现这些答案对你有帮助:
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!
}
用法:
print(calcAge(birthday: "01/12/1990"))
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
}
// 获取年龄
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)
希望对您有所帮助。
Swift 4
我的用例也是针对 Facebook 的,我使用 UserDefaults 来存储生日。下面的函数将从 UserDefaults 中检索生日,由 graphRequest 编辑 return,格式与您的日期相同。该函数将 return 一个包含用户年龄的整数。
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
}
从 Facebook SDK 检索生日时,我得到这个字符串“01/12/1990”。
我的问题是,如何使用此字符串将生日转换为用户的年龄?
你可以在提问前多做一点Google,你可能会发现这些答案对你有帮助:
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!
}
用法:
print(calcAge(birthday: "01/12/1990"))
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
}
// 获取年龄
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)
希望对您有所帮助。
Swift 4
我的用例也是针对 Facebook 的,我使用 UserDefaults 来存储生日。下面的函数将从 UserDefaults 中检索生日,由 graphRequest 编辑 return,格式与您的日期相同。该函数将 return 一个包含用户年龄的整数。
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
}