Абсолютная разница между временем. Продолжительность - PullRequest
0 голосов
/ 26 октября 2019

У меня есть 2 переменные с типом time.Duration. Мне нужно найти разницу в длительности между ними.
Например, v1 = 1сек и v2 = 10сек. Разница составит 9 сек. Такая же разница будет, если v1 = 10 секунд и v2 = 1 секунда.
Обе переменные могут иметь разные значения для часов, минут и т. Д.

Как я могу сделать это в Go?

Это тривиальный вопрос, но я новичок в Go.

Решение: Я использовал измененную версию предоставленного ответа:

func abs(value time.Duration) time.Duration {
    if value < 0 {
        return -value
    }
    return value
}

1 Ответ

2 голосов
/ 26 октября 2019

Попробуйте это:

package main

import (
    "fmt"
    "time"
)

func main() {
    a := 1 * time.Second
    b := 10 * time.Second
    c := absDiff(a, b)
    fmt.Println(c)         // 9s
    fmt.Println(absDiff(b, a)) // 9s

}
func absDiff(a, b time.Duration) time.Duration {
    if a >= b {
        return a - b
    }
    return b - a
}

Это еще одна форма:

package main

import (
    "fmt"
    "time"
)

func main() {
    a := 1 * time.Second
    b := 10 * time.Second
    c := abs(a - b)
    fmt.Println(c) // 9s
}

func abs(a time.Duration) time.Duration {
    if a >= 0 {
        return a
    }
    return -a
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...