我试图在 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)
Run Code Online (Sandbox Code Playgroud)
非常感谢。
Duration.Hours()得到小时math.Ceil()查找日历天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))
}
Run Code Online (Sandbox Code Playgroud)