Метод time.Time.ISOWeek

Метод time.Time.ISOWeek возвращает два значения: год и номер недели (от 1 до 53) для указанной даты в соответствии со стандартом ISO 8601. В этом стандарте неделя начинается с понедельника, а первой неделей года считается та, которая содержит первый четверг. Метод не принимает никаких параметров и возвращает два целых числа: год и номер недели.

Синтаксис

goyear, week := t.ISOWeek()

Пример

Давайте получим номер недели и год для даты 1 января 2023 года:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t := time.Date(2023, 1, 1, 0, 0, 0, 0, time.UTC)
  year, week := t.ISOWeek()
  fmt.Printf("year: %d, week: %d\n", year, week)
}

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

go"year: 2022, week: 52"

Обратите внимание, что 1 января 2023 года относится к последней неделе 2022 года по стандарту ISO 8601.

Пример

Давайте получим номер недели для даты 4 января 2023 года, когда начинается первая неделя 2023 года:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t := time.Date(2023, 1, 4, 0, 0, 0, 0, time.UTC)
  year, week := t.ISOWeek()
  fmt.Printf("year: %d, week: %d\n", year, week)
}

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

go"year: 2023, week: 1"

Пример

Давайте получим номер недели для даты 31 декабря 2023 года:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t := time.Date(2023, 12, 31, 0, 0, 0, 0, time.UTC)
  year, week := t.ISOWeek()
  fmt.Printf("year: %d, week: %d\n", year, week)
}

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

go"year: 2024, week: 1"

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

  • метод time.Time.YearDay,
    который возвращает порядковый номер дня в году
  • метод time.Time.Weekday,
    который возвращает день недели для заданной даты
  • метод time.Time.Year,
    который возвращает год для заданной даты
  • метод time.Time.Month,
    который возвращает месяц для заданной даты