gpt4 book ai didi

date - golang 中的 ISOWeek() 没有返回一年中一周的期望值

转载 作者:数据小太阳 更新时间:2023-10-29 03:39:01 31 4
gpt4 key购买 nike

下面的程序没有返回想要的值

package main

import (
"fmt"
"time"
)

func main() {
t:= time.Date(2011, 1, 1, 0, 0, 0, 0, time.UTC)
_, week := t.ISOWeek()
fmt.Printf("\nWeek of the year: %v\n", week)


}

返回

52

代替

1

对我来说,一年的第一天必须在一年的第一周是有道理的。我在文档中找不到替代函数

最佳答案

查看docs .特别是“周的范围从 1 到 53。n 年的 1 月 1 日到 1 月 3 日可能属于 n-1 年的第 52 或 53 周,而 12 月 29 日到 12 月 31 日可能属于 n+1 年的第 1 周”

主要是你假设一年有 52 周是错误的。这就是您感到困惑的原因。

Go 对第 52 周的计算与所有其他编程语言相同。请看this JavaScript该日期的实现,请注意它也提供 52 作为一周。

您要求的功能不准确或不实用,这就是语言中不存在此类功能的原因。为了使该功能发挥作用,必须在年初和年底中断几周。也许您没有意识到一周被定义为 7 天,不同的国家和文化在不同的日子开始和结束他们的一周。

您可以简单地编写一个函数来完成您对“周”的定义,但标准库中没有。

关于date - golang 中的 ISOWeek() 没有返回一年中一周的期望值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51566166/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com