В системе MacOS
установлен календарь и это структура по умолчанию заполненная данными текущего дня. Данными такой структуры являются: число, месяц, год, временная зона и другие значения соответствующие системным настройкам данной локализации установленной пользователем в настройках.
Проядок написания кода, или блок-схема выглядит так:
Первым делом, вы должны создать экземпляр календаря. Далее инициализировать этот объект данными текущей даты.
По умолчанию данные даты – это .свойства
текущего дня. С помощью функции .component()
вы можете получать части этих данных, то есть свойства.
Чтобы получить данные другого дня требуется сначала их установить с помощью структуры DateComponents()
. После этого данные установленного дня можно получать с помощью вышеперечисленных функций и производить с ними вычисления.
В коде это выглядит так:
///экземпляр календаря установленный пользователем в системе macOS
let calendar = Calendar.current
Далее можно получать отдельные компоненты из текущей даты обращаясь к её свойству .year
. То есть обращаемся к календарю, вызываем у него функцию component()
, в параметрах функции указываем какое свойство нас интересует и из какой даты. В приведённом ниже примере датой является переменная currentDate
.
/// Получаем текущий год
let currentYear = calendar.component( .year, from: currentDate)
Далее создадим свою дату. Создадим структуру с данными и инициализируем новый экземпляр календаря с помощью метода date()
// Установка даты в 2099-м годе
let easter2099 = DateComponents( calendar: calendar, year: 2099, month: 4, day: 12 )
// возвращается изготовленная дата календаря
let onedate = calendar.date(from: easter2099)
Теперь мы можем получать свойства из двух дат. Можем получать как один компонент, так и множество компонентов – они же свойства.
// Получение свойствa календаря по установленной дате `easter2099`
let cal = easter2099.calendar
let day = easter2099.day
let month = easter2099.month
let year = easter2099.year
let timeZ = easter2099.calendar?.localeе
Теперь давайте получим сразу много свайств c помощью :
// Получение свойст для вывода даты
let lotsOnadate = calendar.dateComponents( [.year,.month, .timeZone, .isLeapMonth], from: onedate!)
Далее, более подробное описание работы со временем можно найти в документации.
← назад | 🔝 | далее → |