我想设定年龄限制,当我选择出生日期如果年龄小于18,那么我打印错误
@objc func handleDatePicker(sender: UIDatePicker) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd/MMMM/yyyy"
dateBirthday.text = dateFormatter.string(from: sender.date)
if let date = dateFormatter.date(from: dateBirthday.text!) {
let age = Calendar.current.dateComponents([.year], from: date, to: Date()).year!
print(age) //
self.age.text = "You are \(age) age"
`continue`.isEnabled = true
} else {
let date = dateFormatter.date(from: dateBirthday.text!)
let age = Calendar.current.dateComponents([.year], from: date!, to: Date()).year!
print(age)
if age < 18 {
self.age.text = "Error you are \(age)"
}
}
}
答案 0 :(得分:2)
你可以这样做:
if let date = dateFormatter.date(from: dateBirthday.text!) {
let age = Calendar.current.dateComponents([.year], from: date, to: Date()).year!
if age >= 18 {
print(age)
self.age.text = "You are \(age) age"
continue.isEnabled = true
} else {
self.age.text = "Error you are \(age)"
}
}
答案 1 :(得分:1)
将您的日期和年龄格式化程序移出if语句。通常,如果在if语句的两个分支中都有相同的代码,则可以在代码之前或之后提取它。
if let date = dateFormatter.date(from: dateBirthday.text!) {
let age = Calendar.current.dateComponents([.year], from: date!, to: Date()).year!
print(age)
if age < 18 {
self.age.text = "Error you are \(age)"
} else {
self.age.text = "You are \(age) age"
`continue`.isEnabled = true
}
}