第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

時間之間的絕對差.Duration

時間之間的絕對差.Duration

Go
慕勒3428872 2023-07-31 16:02:03
我有 2 個time.Duration類型變量。我需要找到它們之間的持續(xù)時間差異。例如:v1 = 1 秒且 v2 = 10 秒 — 相差 9 秒。v1 = 10 秒且 v2 = 1 秒 — 差異也是 9 秒。這兩個變量可以具有不同的小時、分鐘等值。我怎樣才能在 Go 中做到這一點?
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻1875條經(jīng)驗 獲得超5個贊

嘗試這個:


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

}


查看完整回答
反對 回復 2023-07-31
?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

去1.19

該函數(shù)Abs已添加到該語言中,因此您可以直接使用該函數(shù),而不必自行編寫:

func main() {

? ? d1 := time.Second * 10

? ? d2 := time.Second


? ? sub1 := d1 - d2

? ? sub2 := d2 - d1


? ? fmt.Println(sub1.Abs()) // 9s

? ? fmt.Println(sub2.Abs()) // 9s

}


查看完整回答
反對 回復 2023-07-31
?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

一個優(yōu)雅的解決方案是使用 bitshift >>


func absDuration(d time.Duration) time.Duration {

   s := d >> 63 

   return (d ^ s) - s

}

如果左操作數(shù)為負,Golang 中的位移位就是邏輯


查看完整回答
反對 回復 2023-07-31
  • 3 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號