2016-04-01 6 views
0

datepickerを使用した後に年齢を取得する必要があります。どうすればいい?私は現在、仕事にdatepickerを得ることができます。日付ピッカーを使用した後の年齢はどのようにして取得できますか?

@IBAction func datepickerobj(sender: UITextField) { 

    let datePickerView:UIDatePicker = UIDatePicker() 

    datePickerView.datePickerMode = UIDatePickerMode.Date 

    sender.inputView = datePickerView 

    datePickerView.addTarget(self, action: Selector("datePickerValueChanged:"), forControlEvents: UIControlEvents.ValueChanged) 
} 


func datePickerValueChanged(sender:UIDatePicker) { 

    let dateFormatter = NSDateFormatter() 

    dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle 

    dateFormatter.timeStyle = NSDateFormatterStyle.NoStyle 

    dateofbirth.text = dateFormatter.stringFromDate(sender.date) 

    let myDOB = NSCalendar.currentCalendar().dateWithEra(1, year: 1970, month: 09, day: 10, hour: 0, minute: 0, second: 0, nanosecond: 0)! 
    let myAge = myDOB.age 
} 
+0

。それはあなたを助けるでしょう。 http://stackoverflow.com/a/6103037/1850983 –

答えて

1

uはあなたがたDateFormatter

例を使用することができ、日付をギしたい場合はこれをu

var birthday: NSDate = ..... //date that comes from date picker 
var now: NSDate = NSDate() 
var ageComponents: NSDateComponents = NSCalendar.currentCalendar().components(.Year, fromDate: birthday, toDate: now, options: 0) 
var age: Int = ageComponents.year() 

のために正常に動作します。チェックリンク以下

let usDateFormat = NSDateFormatter.dateFormatFromTemplate("MMddyyyy", options: 0, locale: NSLocale(localeIdentifier: "en-US")) 
//usDateFormat now contains an optional string "MM/dd/yyyy". 

let gbDateFormat = NSDateFormatter.dateFormatFromTemplate("MMddyyyy", options: 0, locale: NSLocale(localeIdentifier: "en-GB")) 
//gbDateFormat now contains an optional string "dd/MM/yyyy" 

formatter.dateFormat = usDateFormat 
let usSwiftDayString = formatter.stringFromDate(swiftDay) 
// usSwiftDayString now contains the string "06/02/2014". 


formatter.dateFormat = gbDateFormat 
let gbSwiftDayString = formatter.stringFromDate(swiftDay) 
// gbSwiftDayString now contains the string "02/06/2014". 
+0

私はほとんどすべて動作していますが、フォーマットが "mm/dd/yyyy"になる必要があります – user6032625

+0

フォーマット日付にDateFormatterを使用できます(更新された回答を参照) –

+0

Plz Markこれがあなたの問題を解決すれば、正しい答えを出してください。 –

0
//may be it will help for u 
let formatter = NSDateFormatter() 
formatter.dateFormat = "yyyy" 
let currentYear: Int = Int(formatter.stringFromDate(NSDate())) 
let dobYear: Int = Int(formatter.stringFromDate(myDOB)) 
let age: Int = currentYear - dobYear 
関連する問題