Pengenalan
Menentukan julat tarikh yang sepadan dengan nombor minggu yang diberikan boleh keperluan biasa dalam banyak aplikasi. Walaupun Golang menyediakan fungsi yang mudah untuk mendapatkan nombor minggu, ia tidak mempunyai mekanisme terbina dalam untuk mendapatkan julat tarikh yang sepadan. Artikel ini membentangkan penyelesaian Golang praktikal untuk menangani isu ini.
Pelaksanaan Fungsi Tersuai
Untuk menetapkan julat tarikh minggu tertentu, kami perlu melakukan langkah berikut :
Berdasarkan prinsip ini, kami boleh mencipta fungsi tersuai yang dipanggil WeekStart() seperti berikut:
func WeekStart(year, week int) time.Time { // Start from middle of the year t := time.Date(year, 7, 1, 0, 0, 0, 0, time.UTC) // Align to Monday if t.Weekday() == time.Sunday { t = t.AddDate(0, 0, -6) } else { t = t.AddDate(0, 0, -int(t.Weekday())+1) } // Adjust for week difference y, w := t.ISOWeek() t = t.AddDate(0, 0, (week-w)*7) return t }
Penggunaan dan Contoh
Untuk menggunakan fungsi ini, masukkan tahun dan nombor minggu yang diingini sebagai hujah:
fmt.Println(WeekStart(2018, 1)) // Output: 2018-01-01 00:00:00 +0000 UTC fmt.Println(WeekStart(2018, 2)) // Output: 2018-01-08 00:00:00 +0000 UTC
Mendapatkan Hari Terakhir Minggu
Jika kita memerlukan kedua-dua hari pertama dan terakhir dalam minggu, kita boleh melanjutkan fungsi untuk kembali tarikh tamat:
func WeekRange(year, week int) (start, end time.Time) { start = WeekStart(year, week) end = start.AddDate(0, 0, 6) return }
Fungsi dikembangkan ini membolehkan penggunaan berikut:
fmt.Println(WeekRange(2018, 1)) // Output: 2018-01-01 00:00:00 +0000 UTC 2018-01-07 00:00:00 +0000 UTC fmt.Println(WeekRange(2018, 2)) // Output: 2018-01-08 00:00:00 +0000 UTC 2018-01-14 00:00:00 +0000 UTC
Ini pelaksanaan tersuai memberi anda kuasa untuk mendapatkan julat tarikh yang sepadan dengan nombor minggu tertentu dengan mudah, menjadikannya alat yang tidak ternilai untuk manipulasi kalendar dan analisis data dalam aplikasi Golang.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Julat Tarikh daripada Nombor Minggu dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!