Метод time.Time.Weekday

Метод Weekday, вызванный на объекте типа time.Time, возвращает день недели для указанного момента времени. Результат представлен в виде значения типа time.Weekday, которое является целочисленным перечислением, где воскресенье соответствует значению 0, понедельник - 1, и так далее до субботы со значением 6. Это удобно для проверки дня недели, а также для форматирования и сравнения дат.

Синтаксис

got.Weekday() time.Weekday

Пример с текущей датой

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

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  weekday := now.Weekday()
  fmt.Println(weekday)
}

Результат выполнения кода (зависит от текущей даты):

go"Monday"

Пример с конкретной датой

Теперь создадим конкретную дату и определим день недели для 7 сентября 2026 года:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  date := time.Date(2026, time.September, 7, 0, 0, 0, 0, time.UTC)
  weekday := date.Weekday()
  fmt.Println(weekday)
}

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

go"Monday"

Пример сравнения дней недели

Метод Weekday возвращает значение, которое можно сравнивать с константами пакета time. Проверим, является ли некоторая дата субботой или воскресеньем:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  date := time.Date(2026, time.September, 12, 0, 0, 0, 0, time.UTC)
  weekday := date.Weekday()

  if weekday == time.Saturday || weekday == time.Sunday {
    fmt.Println("weekend")
  } else {
    fmt.Println("weekday")
  }
}

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

go"weekend"

Пример с числовым значением

Поскольку тип time.Weekday является целочисленным, мы можем получить числовое представление дня недели (от 0 для воскресенья до 6 для субботы):

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  date := time.Date(2026, time.September, 7, 0, 0, 0, 0, time.UTC)
  weekday := date.Weekday()
  fmt.Println(int(weekday))
}

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

go1

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

  • метод Time.Year,
    который возвращает год временной метки
  • метод Time.Month,
    который возвращает месяц временной метки
  • метод Time.Day,
    который возвращает день месяца
  • функцию time.Now,
    которая возвращает текущее время