Работа с временем на Swift

Всем привет! Я начинающий Swift разработчик. В моем последнем проекте мне потребовалось изменять отображенное расписание в соответсвии с днем недели и временем. Как обычно, я начал искать информацию по этому поводу в интернете на англоязычных сайтах для разработчиков, но ничего стоящего не нашел, потому что все гайды были написаны для предыдущих версий языка Swift.

Понятное дело, что полноценные Swift-программисты уже знают все это, поэтому напомню, что данный Гайд не для вас, а для таких же новичков, как и я.

Работа со временем в Swift, на самом деле, оказалась очень простой. Инициализируется все с помощью пары строчек кода:

let date = Date()
let calendar = Calendar.current

Теперь мы просто можем брать из этих двух переменных данные о времени, дне недели и так далее.

Например, для того, чтобы узнать текущий день недели, нам нужно написать это:

let weekday = calendar.component(.weekday, from: date)

С помощью этой строки мы получаем номер дня недели, начинающейся с воскресенья (то есть понедельник — второй день недели, его номер 2). Теперь с этим номером мы можем делать что угодно, например:

if weekday == 2 {
	print("Сегодня понедельник")
}

Тем же самым образом мы можем получить текущий час, минуту и секунду. Для этого просто надо заменить .weekday на другой компонент. Для часа это .hour, для минуты — .minute и так далее.

Ниже я покажу пример кода, который выводит в консоль текущее время:

let date = Date()
let calendar = Calendar.current
let hour = calendar.component(.hour, from: date)
let minute = calendar.component(.minute, from: date)
let second = calendar.component(.second, from: date)
print("Текущее время: \(hour):\(minute):\(second)")

С помощью этого можно получить большое количество информации, полный список можно посмотреть тут.
Вот такой короткий гайд получился, надеюсь помог начинающим разработчикам. Пишите в комментариях, о каких еще базовых модулях рассказать. Надеюсь вам понравилось. Спасибо за внимание!
Метки:
swift, swift 4, swift основы, для начинающих, гайд, xcode 9