首页 > 解决方案 > 需要测试一个时间是否在同一天的另外两个时间之间

问题描述

在 Go 中,我如何查找时间是否在另外两个时间之间,而忽略日期。

日期无关紧要,因为时间是从不允许指定日期的文字中获得的。

保证开始时间早于结束时间 例如

09:00 和 13:00 之间的时间是 10:00 吗?- 是的,是的,时间是 02:00 到 03:00 之间的 14:12 吗?- 没有那么假

标签: gotimebetween

解决方案


如果您不想比较日期,则在解析时间时只需忽略日期即可。

https://play.golang.org/p/dklyN7NuC5a

start, _ := time.Parse("15:04", "14:00")
end, _ := time.Parse("15:04", "15:00")

t, err := time.Parse("15:04", "14:12")
if err != nil {
    log.Fatal(err)
}

fmt.Println(start.Before(t) && end.After(t))

如果您不需要任何其他时间函数,并且您的时钟时间始终格式化为HH:mm,那么您可以按字典顺序比较它们:

start := "14:00"
end := "15:00"

t := "14:12"

fmt.Println(start < t && t < end)

推荐阅读