目前,Go中的time包没有'divide‘功能或类似的功能。您可以将time.Duration除以其他值,但这需要相当多的类型转换。有没有什么简单明了的方法可以将time.Duration除以Go中我看不到的东西?(我知道您可以除以一个数字常量,但我需要在动态的基础上这样做。)我计划提交一个问题/功能请求,向time包添加一个基本的'divide‘函数,但我想先在这里问一下,以防我错过了一些做这种除法的简单方法。
发布于 2019-02-20 10:23:05
导入“时间”
对于天或更大的单位没有定义,以避免在夏令时时区转换时产生混淆。
要计算持续时间内的单位数,请除以:
second := time.Second fmt.Print(int64(second/ 1000 .毫秒)) //打印1000
要将整数个单位转换为持续时间,请将其相乘:
Second := 10 fmt.Print(time.Duration( Second )*time.Second) //打印10s const (纳秒时长=1微秒= 1000 *纳秒毫秒= 1000 *微秒= 1000 *毫秒分钟= 60 *秒小时= 60 *分钟)
持续时间以int64纳秒计数的形式表示两个瞬间之间经过的时间。该表示将最大可表示持续时间限制在大约290年。
类型持续时间int64
Go time包文档中介绍了time.Duration的除法和乘法。
发布于 2021-07-05 01:18:58
如果除数是2的倍数,则可以使用shifting,而不进行任何强制转换:
package main
import (
"fmt"
"time"
)
func main() {
n := 1
d := time.Minute >> n
fmt.Println(d) // 30s
}https://stackoverflow.com/questions/54777109
复制相似问题