Метод time.Duration.Round
Метод Duration.Round возвращает результат округления
длительности до ближайшего значения, кратного переданному
интервалу. Правила округления основаны на математическом
округлении (от 0.5 в большую сторону). Первым аргументом
метод принимает длительность Duration, задающую
интервал округления.
Синтаксис
round := d.Round(m)
Пример
Округлим длительность 3.7 секунд до ближайшей секунды:
package main
import (
"fmt"
"time"
)
func main() {
d := 3700 * time.Millisecond
res := d.Round(time.Second)
fmt.Println(res)
}
Результат выполнения кода:
"4s"
Пример
Округлим длительность 1.2 часа до ближайшего часа:
package main
import (
"fmt"
"time"
)
func main() {
d := 72 * time.Minute
res := d.Round(time.Hour)
fmt.Println(res)
}
Результат выполнения кода:
"1h"
Пример
Округлим длительность 1.2 часа до ближайших 30 минут:
package main
import (
"fmt"
"time"
)
func main() {
d := 72 * time.Minute
res := d.Round(30 * time.Minute)
fmt.Println(res)
}
Результат выполнения кода:
"1h30m"
Пример
Округлим длительность 8 минут до ближайших 5 минут:
package main
import (
"fmt"
"time"
)
func main() {
d := 8 * time.Minute
res := d.Round(5 * time.Minute)
fmt.Println(res)
}
Результат выполнения кода:
"10m"
Смотрите также
-
метод
Duration.Truncate,
который усекает длительность до заданного интервала -
метод
Time.Round,
который округляет момент времени до заданного интервала -
метод
Duration.Abs,
который возвращает абсолютное значение длительности -
метод
Duration.String,
который возвращает строковое представление длительности