在 Go/Golang 中获取当月的第一天和最后一天?

2024-01-09

我正在尝试获取当月的第一天和最后一天。您可以添加天数和小时数,但不能添加月份,我正在考虑从下个月中减去一天以获得本月的最后一天。像这样的事情:

package main

import (
    "fmt"
    "time"
)

func main() {

    date := time.Now()
    nextMonth := date.Add(time.Month)
    LastDay := nextMonth.Add(-time.Hour * 24)

    fmt.Println(LastDay)

}

time.Month是一种类型,而不是值,所以你不能Add它。另外,您的逻辑是错误的,因为如果您添加一个月并减去一天,您就不会得到月底,而是会在下个月中旬得到一些东西。如果今天是 4 月 24 日,那么您将得到 5 月 23 日。

以下代码将完成您正在寻找的操作:

package main

import (
    "time"
    "fmt"
)

func main() {
    now := time.Now()
    currentYear, currentMonth, _ := now.Date()
    currentLocation := now.Location()

    firstOfMonth := time.Date(currentYear, currentMonth, 1, 0, 0, 0, 0, currentLocation)
    lastOfMonth := firstOfMonth.AddDate(0, 1, -1)

    fmt.Println(firstOfMonth)
    fmt.Println(lastOfMonth)
}

游乐场链接 http://play.golang.org/p/F7GoesAAcK

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Go/Golang 中获取当月的第一天和最后一天? 的相关文章

随机推荐