2016-04-01 37 views
0

Tarih seçicinin kullanılmasından sonra yaşı almam gerekiyor. Bunu nasıl yaparım? Şu anda çalışmak için tarihçiyi alabilirim.Tarih seçiciyi kullandıktan sonra yaşı nasıl alabilirim?

@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

kontrol edin. Sana yardım edecektir. http://stackoverflow.com/a/6103037/1850983 –

cevap

1

u DateFormatter

Ör kullanabilirsiniz tarihini format istiyorsanız bu 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() 

için iyi çalışacaktır. Aşağıdaki linki

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

Çalışmak için hemen hemen her şeyim var ama "mm/gg/yyyy" biçiminde olması gereken biçime ihtiyacım var – user6032625

+0

Biçim tarihi için DateFormatter'ı kullanabilirsiniz (bkz. güncelleştirilmiş yanıt) –

+0

Plz Mark Bu, probleminizi çözdüyse bir hak olarak cevap verin. –

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 
İlgili konular