РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
793 of 1593 menu

Метод time.Duration.Truncate

Метод Truncate выполняет усечение длительности до ближайшего кратного заданному интервалу значения в сторону нуля. Он принимает один параметр - интервал time.Duration, до которого нужно выполнить усечение, и возвращает новую длительность time.Duration. Если переданный интервал меньше или равен нулю, метод возвращает исходную длительность без изменений.

Синтаксис

duration.Truncate(interval)

Пример

Давайте усечем длительность 1h30m45s до ближайшего значения, кратного 1h:

package main import ( "fmt" "time" ) func main() { duration := 1*time.Hour + 30*time.Minute + 45*time.Second res := duration.Truncate(time.Hour) fmt.Println(res) }

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

"1h0m0s"

Пример

Давайте усечем длительность 2h45m30s до ближайшего значения, кратного 30m:

package main import ( "fmt" "time" ) func main() { duration := 2*time.Hour + 45*time.Minute + 30*time.Second res := duration.Truncate(30 * time.Minute) fmt.Println(res) }

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

"2h30m0s"

Пример

Давайте рассмотрим усечение отрицательной длительности -2h45m30s до ближайшего значения, кратного 30m:

package main import ( "fmt" "time" ) func main() { duration := -2*time.Hour - 45*time.Minute - 30*time.Second res := duration.Truncate(30 * time.Minute) fmt.Println(res) }

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

"-2h30m0s"

Пример

Давайте усечем длительность до значения, кратного 5s, когда длительность уже кратна этому интервалу:

package main import ( "fmt" "time" ) func main() { duration := 1*time.Hour + 15*time.Minute res := duration.Truncate(15 * time.Minute) fmt.Println(res) }

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

"1h15m0s"

Пример

Давайте рассмотрим случай, когда интервал усечения меньше или равен нулю:

package main import ( "fmt" "time" ) func main() { duration := 1*time.Hour + 30*time.Minute resZero := duration.Truncate(0) resNegative := duration.Truncate(-time.Hour) fmt.Println("zero interval:", resZero) fmt.Println("negative interval:", resNegative) }

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

"zero interval: 1h30m0s" "negative interval: 1h30m0s"

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

  • метод time.Duration.Round,
    который выполняет округление длительности до ближайшего кратного значения
  • метод time.Duration.Abs,
    который возвращает абсолютное значение длительности
  • метод time.Duration.Hours,
    который возвращает длительность в часах как число с плавающей точкой
  • метод time.Time.Truncate,
    который выполняет усечение времени до ближайшего кратного значения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить