gpt4 book ai didi

go - 获取两个日期之间的真实日历天数

转载 作者:IT王子 更新时间:2023-10-29 01:52:09 30 4
gpt4 key购买 nike

我试图在 Go 中获取两个日期之间的天数,但是当我得到时间差(小时)然后除以每天的时间量时,我遇到了问题。

问题:如果日期不同(5 月 7 日和 5 月 8 日)但两者之间的时间少于 24 小时,我的代码会算作中间没有天数。

我想要的:计算两者之间的真实天数。

// Days
firstDay := firstDate.Unix()
lastDay := lastDate.Unix()
fmt.Println("firstDay: ", firstDay)
fmt.Println("lastDay: ", lastDay)

if firstDay > lastDay {
fmt.Println("IS TO SMALL")
return
}

// businessDays =
businessDays := (lastDay - firstDay) / 86400
fmt.Println("businessDays: ", businessDays)

非常感谢。

最佳答案

  1. 使用Duration.Hours()获得时间
  2. 使用math.Ceil()查找日历日
  3. 使用Time.Truncate()截断小时和分钟,只保存天

源代码:

package main

import (
"fmt"
"math"
"time"
)

func main() {
d1, err := time.Parse("200601021504", "201801020001")
if err != nil {
panic(err)
}
d2, err := time.Parse("200601021504", "201801020002")
if err != nil {
panic(err)
}

newD1 := d1.Truncate(time.Hour * 24)
newD2 := d2.Truncate(time.Hour * 24)

fmt.Printf("days: %v\n", math.Ceil(newD2.Sub(newD1).Hours()/24))

}

关于go - 获取两个日期之间的真实日历天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48624286/

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