Menentukan perbezaan antara dua masa. Objek masa dari segi jam, minit , dan saat adalah tugas biasa. Walau bagaimanapun, pakej masa dalam Go tidak secara langsung menyediakan kaedah untuk melakukan pengiraan ini.
Penyelesaian terletak pada penggunaan kaedah Time.Sub(), yang mengembalikan perbezaan antara dua masa.Objek masa sebagai masa.Nilai tempoh. masa.Tempoh mewakili tempoh masa dengan ketepatan nanosaat.
untuk mendapatkan format yang diingini (HH:mm:ss), kita boleh membina masa baharu.Nilai masa menggunakan kaedah Add() dengan nilai tempoh :
diff := t2.Sub(t1) formattedDiff := time.Time{}.Add(diff) fmt.Println(formattedDiff.Format("15:04:05"))
Ini akan mencetak perbezaan dalam format yang diingini, walaupun kurang daripada sehari.
Jika perbezaan masa boleh lebih lama daripada sehari, pengiraan perbezaan menjadi lebih rumit, kerana ia melibatkan pengiraan dengan tahun, bulan dan hari. Dalam kes sedemikian, fungsi pembantu seperti yang disediakan di bawah boleh digunakan:
func diff(a, b time.Time) (year, month, day, hour, min, sec int) { // Calculate the difference in seconds diffSeconds := int(a.Sub(b).Seconds()) // Calculate days and remaining seconds days := diffSeconds / (24 * 3600) remainingSeconds := diffSeconds % (24 * 3600) // Calculate hours and remaining seconds hours := remainingSeconds / 3600 remainingSeconds %= 3600 // Calculate minutes and remaining seconds minutes := remainingSeconds / 60 seconds := remainingSeconds % 60 // Convert days to years, months, and remaining days yearDays := days / 365 yearSeconds := yearDays * 365 * 24 * 3600 months := (days - yearDays*365) / 30 daySeconds := (days - yearDays*365 - months*30) * 24 * 3600 return yearDays, months, days, hours, minutes, seconds }
Fungsi ini mengembalikan perbezaan dalam tahun, bulan, hari, jam, minit dan saat, membolehkan pengiraan dengan perbezaan masa melebihi 24 jam.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Antara Masa Dua Pergi. Objek Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!