📜  Golang 中的 time.Round()函数示例

📅  最后修改于: 2021-10-24 13:03:41             🧑  作者: Mango

在 Go 语言中,时间包提供了确定和查看时间的功能。 Go 语言中的Round()函数用于查找将规定的持续时间“d”四舍五入为“m”持续时间的最接近倍数的结果。这里,中间值的舍入方式是远离0舍入。而且,这个函数是在time包下定义的。在这里,您需要导入“time”包才能使用这些功能。

句法:

func (d Duration) Round(m Duration) Duration

这里,d 是四舍五入的持续时间,m 是最接近的倍数。

返回值:如果结果超过可以存储在持续时间内的最大(或最小)值,则返回最大(或最小)持续时间。但如果 m 小于或等于 0,则返回未更改的 ‘d’。

示例 1:

// Golang program to illustrate the usage of
// Round() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Calling main
func main() {
  
    // Defining duration 
    // of Round method
    d, _ := time.ParseDuration("5m7s")
  
    // Prints rounded d
    fmt.Printf("Rounded d is : %s", 
            d.Round(6*time.Second))
}

输出:

Rounded d is : 5m6s

此处,“d”四舍五入为 m 的最接近倍数。

示例 2:

// Golang program to illustrate the usage of
// Round() function
  
// Including main package
package main
  
// Importing fmt and time
import (
    "fmt"
    "time"
)
  
// Calling main
func main() {
  
    // Defining duration of Round method
    d, _ := time.ParseDuration("3m73.671s")
  
    // Array of m
    R := []time.Duration{
        time.Microsecond,
        time.Second,
        3 * time.Second,
        9 * time.Minute,
    }
  
    // Using for loop and range to
    // iterate over an array
    for _, m := range R {
  
        // Prints rounded d of all 
        // the items in an array
        fmt.Printf("Rounded(%s) is : %s\n", 
                             m, d.Round(m))
    }
}

输出:

Rounded(1µs) is : 4m13.671s
Rounded(1s) is : 4m14s
Rounded(3s) is : 4m15s
Rounded(9m0s) is : 0s

在这里,首先形成一个 ‘d’ 数组,然后使用一个范围来迭代 d 的所有值。最后使用 Round() 方法打印 d 的所有舍入值。