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

Метод time.Time.Sub

Метод time.Time.Sub вычисляет разницу между двумя моментами времени. Он вызывается на одном объекте time.Time и принимает в качестве аргумента другой момент времени. В результате возвращается значение типа time.Duration, которое представляет собой промежуток времени между двумя точками. Если первый момент времени позже второго, результат будет положительным, если раньше — отрицательным.

Синтаксис

t1.Sub(t2)

где t1 и t2 — моменты времени типа time.Time.

Пример

Вычислим разницу между двумя моментами времени:

package main import ( "fmt" "time" ) func main() { t1 := time.Date(2026, time.September, 4, 12, 0, 0, 0, time.UTC) t2 := time.Date(2026, time.September, 4, 10, 30, 0, 0, time.UTC) res := t1.Sub(t2) fmt.Println(res) }

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

"1h30m0s"

В данном примере разница между t1 и t2 составляет 1 час 30 минут, что и было выведено на экран.

Пример

Если первый момент времени раньше второго, результат будет отрицательным:

package main import ( "fmt" "time" ) func main() { t1 := time.Date(2026, time.September, 4, 9, 0, 0, 0, time.UTC) t2 := time.Date(2026, time.September, 4, 14, 15, 0, 0, time.UTC) res := t1.Sub(t2) fmt.Println(res) }

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

"-5h15m0s"

Здесь t1 раньше t2 на 5 часов 15 минут, поэтому результат вышел отрицательным.

Пример

Разницу во времени можно преобразовать в более удобные единицы с помощью методов типа time.Duration:

package main import ( "fmt" "time" ) func main() { t1 := time.Date(2026, time.September, 4, 23, 0, 0, 0, time.UTC) t2 := time.Date(2026, time.September, 4, 20, 30, 0, 0, time.UTC) diff := t1.Sub(t2) hours := diff.Hours() minutes := diff.Minutes() seconds := diff.Seconds() fmt.Println(hours) fmt.Println(minutes) fmt.Println(seconds) }

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

"2.5" "150" "9000"

В этом примере разница в 2 часа 30 минут была преобразована в часы, минуты и секунды.

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

  • метод time.Time.Add,
    который прибавляет продолжительность к моменту времени
  • метод time.Time.Before,
    который проверяет, предшествует ли момент времени другому
  • метод time.Time.After,
    который проверяет, наступает ли момент времени после другого
  • функцию time.Since,
    которая возвращает время, прошедшее с указанного момента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить