gpt4 book ai didi

go - 按秒/分钟/小时查找早期时间

转载 作者:数据小太阳 更新时间:2023-10-29 03:10:57 33 4
gpt4 key购买 nike

我将时间除以 240 米或 4 小时。如何从随机时间或 time.now() 开始的 00.00 开始除以 4 小时的早期时间?

  • 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 秒开始使用分频器,可能会浪费大 slice 的内存并降低性能。因为我想要没有计时器的实验过期缓存。谢谢。

最佳答案

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
}

Playground :https://play.golang.org/p/fFAqh_0Wkdp

请注意 Playground 有固定时间。

关于go - 按秒/分钟/小时查找早期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51911344/

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