Метод time.Time.ISOWeek
Метод time.Time.ISOWeek возвращает два значения:
год и номер недели (от 1 до 53) для указанной даты в соответствии
со стандартом ISO 8601. В этом стандарте неделя начинается
с понедельника, а первой неделей года считается та, которая
содержит первый четверг. Метод не принимает никаких параметров
и возвращает два целых числа: год и номер недели.
Синтаксис
year, week := t.ISOWeek()
Пример
Давайте получим номер недели и год для даты 1 января 2023 года:
package 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)
}
Результат выполнения кода:
"year: 2022, week: 52"
Обратите внимание, что 1 января 2023 года относится к последней неделе 2022 года по стандарту ISO 8601.
Пример
Давайте получим номер недели для даты 4 января 2023 года, когда начинается первая неделя 2023 года:
package 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)
}
Результат выполнения кода:
"year: 2023, week: 1"
Пример
Давайте получим номер недели для даты 31 декабря 2023 года:
package 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)
}
Результат выполнения кода:
"year: 2024, week: 1"
Смотрите также
-
метод
time.Time.YearDay,
который возвращает порядковый номер дня в году -
метод
time.Time.Weekday,
который возвращает день недели для заданной даты -
метод
time.Time.Year,
который возвращает год для заданной даты -
метод
time.Time.Month,
который возвращает месяц для заданной даты