查找早点除以秒/分钟/小时

  • 本文关键字:分钟 小时 查找 go
  • 更新时间 :
  • 英文 :


我有时间除以 240m 或 4 小时。如何从随机时间或 time.now(( 获得从 4 开始的 00.00 小时早期时间除以 00.00 小时?

  • 02.35.00 将是 00.00.00
  • 23.59.59 将是 20.00.00

其他样品。除以 50 分钟:

00.50.00
  • 将是 00.50.00
  • 00.49.59 将是 00.00.00
  • 01.50.00
  • 将是 01.40.00...
  • 23.59.59
  • 将是 23.20.00

分频器可以从 1 秒开始到 23h59m。

我已经是像 https://play.golang.org/p/oJn09DCWqjF 这样的其他方法,但如果我想从 2/4 秒开始使用分隔器,可能会浪费大切片的内存并降低性能。因为我希望实验过期缓存没有计时器。谢谢。

time.Time.Truncate主要是你想要的。

但是,当时间带有日期时,这有点棘手,因为并非所有持续时间都可以确定 24 小时(例如 50 分钟(。您将需要剥离日期并将其添加回来。

func truncate(t time.Time, d time.Duration) time.Time {
yy, mm, dd := t.Date()
t = t.AddDate(-yy, -int(mm), -dd)
t = t.Truncate(d)
t = t.AddDate(yy, int(mm), dd)
return t
}

游乐场:https://play.golang.org/p/fFAqh_0Wkdp

请注意,游乐场有固定的时间。

最新更新