РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
809 of 1593 menu

Тип time.Weekday

Тип time.Weekday представляет собой перечисление, которое используется для обозначения дней недели в пакете time. Он основан на целочисленном типе int и содержит константы от time.Sunday (0) до time.Saturday (6). Этот тип часто возвращается методом Weekday структуры time.Time.

Константы

Пакет time определяет следующие константы для типа time.Weekday:

const ( Sunday Weekday = 0 Monday Weekday = 1 Tuesday Weekday = 2 Wednesday Weekday = 3 Thursday Weekday = 4 Friday Weekday = 5 Saturday Weekday = 6 )

Каждая константа соответствует определенному дню недели и может быть использована для сравнения и вычислений.

Синтаксис

type Weekday int

Тип Weekday является псевдонимом для int, поэтому с ним можно выполнять арифметические операции, а также преобразовывать в целое число и обратно.

Пример использования

Давайте получим текущий день недели и выведем его в виде строки:

package main import ( "fmt" "time" ) func main() { now := time.Now() weekday := now.Weekday() fmt.Printf("Today is %s\n", weekday) }

Результат выполнения кода:

"Today is Monday"

Обратите внимание, что метод String типа Weekday возвращает английское название дня недели: "Sunday", "Monday" и так далее.

Пример сравнения

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

package main import ( "fmt" "time" ) func main() { now := time.Now() weekday := now.Weekday() if weekday == time.Saturday || weekday == time.Sunday { fmt.Println("It's the weekend!") } else { fmt.Println("It's a weekday") } }

Результат выполнения кода:

"It's a weekday"

В этом примере мы сравниваем полученный день недели с константами time.Saturday и time.Sunday для определения выходного дня.

Пример арифметики

Давайте вычислим, какой день недели будет через 3 дня от текущего:

package main import ( "fmt" "time" ) func main() { now := time.Now() currentWeekday := now.Weekday() // Добавляем 3 дня к текущему дню недели futureWeekday := (currentWeekday + 3) % 7 fmt.Printf("In 3 days it will be %s\n", futureWeekday) }

Результат выполнения кода:

"In 3 days it will be Thursday"

Так как Weekday основан на целочисленном типе, мы можем выполнять с ним арифметические операции. Оператор % 7 нужен для того, чтобы результат оставался в диапазоне от 0 до 6.

Пример преобразования

Давайте преобразуем целое число в тип time.Weekday и выведем название дня:

package main import ( "fmt" "time" ) func main() { // Преобразуем число 3 в Weekday dayNum := 3 weekday := time.Weekday(dayNum) fmt.Printf("Day number %d is %s\n", dayNum, weekday) }

Результат выполнения кода:

"Day number 3 is Wednesday"

Преобразование выполняется с помощью приведения типа time.Weekday(dayNum), где dayNum может быть любым целым числом. При этом значение 0 соответствует воскресенью, 1 - понедельнику и так далее.

Смотрите также

  • метод time.Time.Weekday,
    который возвращает день недели для объекта времени
  • тип time.Month,
    который аналогичным образом представляет месяц года
  • структуру time.Time,
    которая предоставляет методы для работы с датой и временем
  • функцию time.Now,
    которая возвращает текущее время
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить