Метод time.Duration.Round

Метод Duration.Round возвращает результат округления длительности до ближайшего значения, кратного переданному интервалу. Правила округления основаны на математическом округлении (от 0.5 в большую сторону). Первым аргументом метод принимает длительность Duration, задающую интервал округления.

Синтаксис

goround := d.Round(m)

Пример

Округлим длительность 3.7 секунд до ближайшей секунды:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  d := 3700 * time.Millisecond
  res := d.Round(time.Second)
  fmt.Println(res)
}

Результат выполнения кода:

go"4s"

Пример

Округлим длительность 1.2 часа до ближайшего часа:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  d := 72 * time.Minute
  res := d.Round(time.Hour)
  fmt.Println(res)
}

Результат выполнения кода:

go"1h"

Пример

Округлим длительность 1.2 часа до ближайших 30 минут:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  d := 72 * time.Minute
  res := d.Round(30 * time.Minute)
  fmt.Println(res)
}

Результат выполнения кода:

go"1h30m"

Пример

Округлим длительность 8 минут до ближайших 5 минут:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  d := 8 * time.Minute
  res := d.Round(5 * time.Minute)
  fmt.Println(res)
}

Результат выполнения кода:

go"10m"

Смотрите также

  • метод Duration.Truncate,
    который усекает длительность до заданного интервала
  • метод Time.Round,
    который округляет момент времени до заданного интервала
  • метод Duration.Abs,
    который возвращает абсолютное значение длительности
  • метод Duration.String,
    который возвращает строковое представление длительности