Расчет даты в будущем или прошлом

Swift:
Расчет даты в будущем или прошлом

Как:

Swift делает математику дат простой с помощью Calendar и DateComponents. Вот суть:

import Foundation

// Сегодняшняя дата
let today = Date()

// Получить текущий календарь пользователя
let currentCalendar = Calendar.current

// Добавить 2 недели к сегодняшнему дню
if let twoWeeksLater = currentCalendar.date(byAdding: .weekOfYear, value: 2, to: today) {
    print("Через две недели: \(twoWeeksLater)")
}

// Вычесть 30 дней из сегодняшнего дня
if let thirtyDaysBefore = currentCalendar.date(byAdding: .day, value: -30, to: today) {
    print("Тридцать дней назад: \(thirtyDaysBefore)")
}

Вывод может выглядеть так:

Через две недели: 2023-04-14 10:26:47 +0000
Тридцать дней назад: 2023-03-15 10:26:47 +0000

Помните, фактический вывод будет варьироваться, поскольку Date() дает вам текущие дату и время.

Погружение

До Swift, Objective-C и его более тяжеловесный синтаксис доминировали. Date, Calendar, и DateComponents в Swift упрощают операции с датами. Эти объекты учитывают часовые пояса, изменения летнего времени и настройки календаря пользователя – факторы, управление которыми было трудоемко в Objective-C.

Альтернативы включают сторонние библиотеки, такие как SwiftDate, которые могут обеспечить еще больше удобства и функциональности. Но для многих встроенные инструменты Swift работают отлично.

Даты сложны. Это не просто числа, которые нужно увеличивать или уменьшать; они включают в себя календари, специфику локалей и часовые пояса. Фреймворк Foundation от Apple решает эту сложность, убедившись, что ваши расчеты дат в прошлом и будущем имеют смысл по всему миру.