Golang Go语言中求个时间比较的方法
Golang Go语言中求个时间比较的方法
已知时间
- t0,t1,t2...ta,tx,ty,tz,tb,tz, 求 ta 到 tb 中距离 tz 最近的一个时间 ,时间范围满足有且只有 ta tb 。不能在 ta 之前 不能在 tz 之后。
- 试过 tz.Sub(ta)和 to.Sub(tb)比较 不行。
- 试了 Before() 也试过 After() 用 for 循环之后时间-4 会退回到 ta 之前。不减 4 无法判断。 有什么其他思路吗?谢谢
更多关于Golang Go语言中求个时间比较的方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
都不知道你说啥,代码也不给,一句不行,谁知道你说啥不行? Sub 怎么就不能比较了? After, Before 怎么就不能比较了?你究竟想比较啥?
更多关于Golang Go语言中求个时间比较的方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
Unix()通通转成 int64, 想怎么比较都行。
没听明白
不能在 tz 之后的话…tb 的意义在哪…?
ta tb 二选一 而且 tb 出现的几率极少 千年没见一次 这是万年历当中定冬至前朔的计算
没看明白。求最近的时间点 转成时间戳然后相减取绝对值不行吗
fmt.Println(tz.(type))
输出是什么
use of .(type) outside type switch
不敢帮了。
“t0,t1,t2…ta,tx,ty,tz,tb,tz, 求 ta 到 tb 中距离 tz 最近的一个时间”,这不就是 tb ?
“时间范围满足有且只有 ta tb ”,意义不明
“不能在 ta 之前 不能在 tz 之后”,你这个范围究竟是 [ta, tb] 还是 [ta, tz] ?
“试过 tz.Sub(ta)和 to.Sub(tb)比较 不行”,to 哪来的?不行是指什么不行?
“试了 Before() 也试过 After() ”,能不能给个表达式来说明你的意思?
“用 for 循环之后时间-4 会退回到 ta 之前”,没有代码谁知道你说什么循环?
没人明白你什么思路,更不可能给你其他思路。
time.Time 类型
谢了
在Go语言中,进行时间比较是一项非常常见的任务,通常使用标准库中的time
包来处理。time.Time
类型提供了多种方法来进行时间的比较和运算。
以下是一个简单的时间比较示例:
package main
import (
"fmt"
"time"
)
func main() {
// 定义两个时间
time1 := time.Date(2023, 10, 1, 12, 0, 0, 0, time.UTC)
time2 := time.Date(2023, 10, 2, 12, 0, 0, 0, time.UTC)
// 使用Before, After和Equal方法进行比较
if time1.Before(time2) {
fmt.Println("time1在time2之前")
} else if time1.After(time2) {
fmt.Println("time1在time2之后")
} else {
fmt.Println("time1和time2相等")
}
// 也可以使用Sub方法计算时间差,然后进行比较
duration := time2.Sub(time1)
if duration > 0 {
fmt.Println("time2比time1晚", duration)
} else {
fmt.Println("time2不比time1晚")
}
}
在这个示例中,我们使用了Before
、After
和Equal
方法来直接比较两个time.Time
对象。此外,我们还展示了如何使用Sub
方法来计算两个时间之间的差异,并基于该差异进行比较。这些方法使得在Go中进行时间比较变得既简单又直观。