Метод time.Duration.Abs

Метод time.Duration.Abs возвращает абсолютное значение временного интервала time.Duration. Если интервал положительный, метод возвращает его без изменений. Если интервал отрицательный, метод возвращает его положительный эквивалент. Метод всегда возвращает неотрицательное значение.

Синтаксис

god.Abs()

Пример

Давайте получим абсолютное значение положительного временного интервала:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  d := 10 * time.Minute
  res := d.Abs()
  fmt.Println(res)
}

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

go"10m0s"

Пример

Давайте получим абсолютное значение отрицательного временного интервала:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  d := -5 * time.Second
  res := d.Abs()
  fmt.Println(res)
}

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

go"5s"

Пример

Давайте применим метод Abs к нулевому временному интервалу:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  var d time.Duration
  res := d.Abs()
  fmt.Println(res)
}

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

go"0s"

Пример

Давайте используем метод Abs для вычисления разницы между двумя моментами времени:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t1 := time.Date(2024, 1, 1, 0, 0, 0, 0, time.UTC)
  t2 := time.Date(2023, 12, 25, 12, 0, 0, 0, time.UTC)
  diff := t1.Sub(t2).Abs()
  fmt.Println(diff)
}

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

go"156h0m0s"

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

  • метод time.Duration.Hours,
    который преобразует интервал в часы
  • метод time.Duration.Minutes,
    который преобразует интервал в минуты
  • метод time.Duration.Seconds,
    который преобразует интервал в секунды
  • метод time.Duration.String,
    который возвращает строковое представление интервала