Swift3 Swift 3中日期差异的计算

Swift3 Swift 3中日期差异的计算,swift3,Swift3,我为标签创建了3个出口,为按钮创建了1个操作,为UIDatePickerView创建了1个出口。lblField以月份、日期和年份[2017年1月25日]格式显示当前日期。lblField2在按dueDate操作后显示用户选择的日期。现在,我需要计算当前日期和所选日期之间的差异,即lblField3中的(lblField2-lblField)。如何在Swift3中显示月和日的差值。我需要Swift3?您可以使用datecomponentsformter let formatter = DateC

我为标签创建了3个出口,为按钮创建了1个操作,为UIDatePickerView创建了1个出口。lblField以月份、日期和年份[2017年1月25日]格式显示当前日期。lblField2在按dueDate操作后显示用户选择的日期。现在,我需要计算当前日期和所选日期之间的差异,即lblField3中的(lblField2-lblField)。如何在Swift3中显示月和日的差值。我需要Swift3?

您可以使用
datecomponentsformter

let formatter = DateComponentsFormatter()
formatter.allowedUnits = [.month,.day]
formatter.maximumUnitCount = 2
formatter.unitsStyle = .full
lblField3.text = formatter.string(from: Date(), to: datePicker.date) ?? ""
如果您希望与特定的月份和日期不同,您可以通过这种方式使用
Calendar

let components = Calendar.current.dateComponents([.month, .day], from: Date(), to: datePicker.date)
let dayDifference = components.day!
let monthDifference = components.month!
2017年2月15日
这将是日期格式化程序easy和新的单行sytax

它只提供几个月,而不提供天。我需要几个月和几天@NiravD@Tamannah检查编辑后的答案一次,并将
maximumUnitCount
设置为
2
@NiravD没有任何可选项必须为零合并检查。对于日期组件,您100%安全地指定了
month
day
组件,因此相应的属性不能–从不–为
nil
。Apple将属性更改为optionals,以便能够使用方便的初始值设定项
DateComponents(小时:12,分钟:30)
省略所有未使用的组件。我应该在哪里添加该属性??以及如何在lblField3上显示这两种情况(如6个月18天)。我已经给出了所有的密码。。请帮帮我!!@尼拉夫D@Tamannah检查我最新编辑的答案,并在您的
dueDate
操作方法中添加
DateComponentsFormatter
        var date = NSDate().dateStringWithFormat(format: "dd.MM.YYY")
    print(date)