/**
通过出生日期的字符串获得
- parameter birthdayStr: 出生日期的字符串
- returns: 年龄
*/
func getAge(birthdayStr:String) ->Int{
//======字符串转NSDate
let dateFormater = NSDateFormatter()
dateFormater.dateFormat = "yyyy-MM-dd"
dateFormater.locale = NSLocale.currentLocale()
let date = dateFormater.dateFromString(birthdayStr)
//=======date设为当前时区
let zone = NSTimeZone.systemTimeZone()
let interval = Double(zone.secondsFromGMTForDate(date!))
let lastDate = date?.dateByAddingTimeInterval(interval)
//调用方法 通过lastDate获得年龄
return ageWithDateOfBirth(lastDate!)
}
/**
通过日期获得
- parameter date: 出生日期
- returns: 年龄
*/
func ageWithDateOfBirth(date: NSDate) -> NSInteger {
//NSDateComponents 只是一个容器,容器中详细有年月日时分等信息。
//=========获得出生的年月日
var components1 = NSCalendar.currentCalendar().components(.Year, fromDate: date)
let birthYear = components1.year
components1 = NSCalendar.currentCalendar().components(.Month, fromDate: date)
let birthMouth = components1.month
components1 = NSCalendar.currentCalendar().components(.Day, fromDate: date)
let birthDay = components1.day
//==========获得当前的年月日
var components2 = NSCalendar.currentCalendar().components(.Year, fromDate: NSDate())
let currentYear = components2.year
components2 = NSCalendar.currentCalendar().components(.Year, fromDate: NSDate())
let currentMouth = components2.month
components2 = NSCalendar.currentCalendar().components(.Year, fromDate: NSDate())
let currentDay = components2.day
var age = currentYear - birthYear
if ((currentMouth > birthMouth) || (currentMouth == birthMouth && currentDay >= birthDay)){
age++
}
return age
}
转载于:https://my.oschina.net/u/1476033/blog/663693