Swift:计算两个日期之间的时间

时间:2016-10-08 18:27:03

标签: ios swift nscalendar

我的故事板中有一个文本字段,并在相应的ViewController中创建了以下插座:

@IBOutlet weak var birthday: UITextField!

用户将以“MM / DD”格式输入月份和日期,然后按Enter键。我希望能够计算自生日以来的天数(不包括今天),然后在等式中使用该数字。

如何计算范围?

1 个答案:

答案 0 :(得分:4)

如果您提供textFiled选项,请使用UIPickerView(.date)输入日期,以便用户不会弄乱格式。然后使用以下代码获取从输入到当前日期的日期: -

    let calendar: NSCalendar = NSCalendar.currentCalendar()

    let firstDate  = NSDate() // Current date
    let dateString = "06-10-2016"// Get input(date) from textfield

    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "dd-MM-yyyy"

    let secondDate = dateFormatter.dateFromString(dateString)


    let date1 = calendar.startOfDayForDate(firstDate)
    let date2 = calendar.startOfDayForDate(secondDate!)

    let flags = NSCalendarUnit.Day
    let components = calendar.components(flags, fromDate: date1, toDate: date2, options: [])
    print("amount of days \(components.day)")