我正在上学。需要使用日期选择器计算用户的年龄,考虑日期,月份和年份。
我已经说过,如果用户选择的月份大于当前月份,则结果为:currentYear - userYear
。问题是我不知道如何考虑日子。
import UIKit
import Foundation
class ViewController: UIViewController {
func quitarTeclado() {
nombreField.resignFirstResponder()
origenField.resignFirstResponder()
}
@IBAction func dateChanged(_ sender: Any) {
}
@IBOutlet var datePicker: UIDatePicker!
@IBAction func tap(_ sender: UITapGestureRecognizer) {
quitarTeclado()
}
@IBOutlet var nombreField: UITextField!
@IBOutlet var origenField: UITextField!
@IBOutlet var lblResultado: UILabel!
@IBAction func btnCalcular(_ sender: Any) {
let calendar = Calendar.current
let components = calendar.dateComponents([.year,.month,.day], from: Date())
let currentDay = components.day
let currentMonth = components.month
let currentYear = components.year
let userComponents = calendar.dateComponents([.year,.month,.day], from: datePicker.date)
let userDay = userComponents.day
let userMonth = userComponents.month
let userYear = userComponents.year
let restaYear = currentYear! - userYear!
let restaMonth = currentMonth! - userMonth!
let restaDay = currentDay! - userDay!
if nombreField.text != "" && origenField.text != "" {
if restaDay >= 0 && restaMonth >= 0 {
lblResultado.text = "\(restaYear)"
}
else {
lblResultado.text = "\(restaYear - 1)"
}
if lblResultado.text == "-1" {
lblResultado.text = "0"
}
}else {
let alerta = UIAlertController(title: "Error", message: "Introduzca todos los datos", preferredStyle: .alert)
let ok = UIAlertAction(title: "Okay", style: .default, handler: nil)
alerta.addAction(ok)
self.present(alerta, animated: true, completion: nil)
}
}
}