В чем разница между методами Time.Sub() и Time.Add() пакета time?



В пакете time языка Go методы Time.Sub() и Time.Add() служат для работы с временными значениями, но выполняют разные задачи:



1. Time.Sub():

- Используется для вычисления разницы между двумя временными значениями.

- Принимает другой объект типа Time и возвращает Duration, представляющую время, прошедшее между этими двумя временными значениями.

- Пример использования:





t1 := time.Now()

t2 := t1.Add(2 * time.Hour)

duration := t2.Sub(t1) // возвращает 2 часа





2. Time.Add():

- Используется для добавления определенного временного интервала (типа Duration`) к объекту типа `Time.

- Принимает значение Duration и возвращает новый объект Time, который представляет момент времени, полученный после добавления указанного интервала.

- Пример использования:





t := time.Now()

newTime := t.Add(2 * time.Hour) // возвращает t плюс 2 часа





Таким образом, Time.Sub() используется для нахождения разницы между временными метками, а Time.Add() — для добавления интервала времени к конкретной временной метке.



👉 @juniorGolang