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 решает эту сложность, убедившись, что ваши расчеты дат в прошлом и будущем имеют смысл по всему миру.