2017-01-25 5 views
0

Я создал 3 выхода для этикеток, 1 действие для кнопки и 1 выход для UIDatePickerView. lblField отображает текущую дату в формате месяца, даты и года [25 января 2017]. lblField2 отображает выбранные даты пользователем после нажатия команды dueDate. Теперь мне нужно рассчитать разницу между текущей датой и выбранной датой i.e (lblField2 - lblField) в lblField3. Как я могу показать значение разницы в месяцах и днях в Swift3. Мне нужно строго для Swift3?расчет разницы дат в Swift 3

ответ

1

Для этого вы можете использовать dateComponentsFormatter.

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! 
+0

Это дает всего несколько месяцев, но не дней. Мне нужны как месяцы, так и дни @Nirav D – Tamannah

+0

@Tamannah Проверьте отредактированный ответ один раз и установите 'maximumUnitCount' в' 2' –

+0

@NiravD Не обязательно, чтобы опция * nil coalescing * была проверена. В случае компонентов даты вы на 100% безопасно указали компонент 'month' и' day', поэтому соответствующие свойства не могут - никогда - быть 'nil'. Apple изменила свойства на опции, чтобы иметь возможность использовать удобный инициализатор 'DateComponents (час: 12, минута: 30)', опуская все неиспользуемые компоненты. – vadian

0
 var date = NSDate().dateStringWithFormat(format: "dd.MM.YYY") 
    print(date) 

15.02.2017 это будет дата formater легкой и новой однолинейной sytax

Смежные вопросы