Различные способы расчета разницы во времени в Go (Golang)

Чтобы найти разницу между двумя временами в Go (Golang), вы можете использовать различные методы. Вот несколько подходов с примерами кода:

Метод 1: использование метода Subтипа time.Time

package main
import (
    "fmt"
    "time"
)
func main() {
    time1 := time.Date(2021, time.January, 1, 12, 0, 0, 0, time.UTC)
    time2 := time.Date(2021, time.January, 1, 13, 30, 0, 0, time.UTC)
    diff := time2.Sub(time1)
    fmt.Println("Difference:", diff)
}

Метод 2: преобразование времени в временные метки Unix и вычисление разницы

package main
import (
    "fmt"
    "time"
)
func main() {
    time1 := time.Date(2021, time.January, 1, 12, 0, 0, 0, time.UTC)
    time2 := time.Date(2021, time.January, 1, 13, 30, 0, 0, time.UTC)
    diff := time2.Unix() - time1.Unix()
    fmt.Println("Difference (in seconds):", diff)
}

Метод 3: использование типа Durationи метода Sub

package main
import (
    "fmt"
    "time"
)
func main() {
    time1 := time.Date(2021, time.January, 1, 12, 0, 0, 0, time.UTC)
    time2 := time.Date(2021, time.January, 1, 13, 30, 0, 0, time.UTC)
    diff := time2.Sub(time1)
    duration := diff.Round(time.Second)
    fmt.Println("Difference:", duration)
}

Эти методы вычисляют разницу между двумя значениями time.Time. Метод 1 и метод 3 предоставляют разницу в виде значения time.Duration, а метод 2 — в секундах.