Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengira Julat Tarikh Diberi Nombor Minggu di Golang?

Bagaimana Mengira Julat Tarikh Diberi Nombor Minggu di Golang?

Linda Hamilton
Linda Hamiltonasal
2024-12-31 10:01:08779semak imbas

How to Calculate a Date Range Given a Week Number in Golang?

Julat Tarikh mengikut Nombor Minggu di Golang

Latar Belakang:

Masa.ISOWeek() mengembalikan nombor minggu yang bermula pada hari Isnin. Artikel ini menunjukkan cara mendapatkan julat tarikh untuk minggu tertentu, dengan mengandaikan ia bermula dari Ahad.

Penyelesaian:

  1. Kira Permulaan Minggu :

Mulakan dengan menjajarkan ke hari pertama dalam minggu (Isnin) dari pertengahan tahun. Gabungkan dengan menambah hari berdasarkan perbezaan minggu didarab dengan 7.

func WeekStart(year, week int) time.Time {
    t := time.Date(year, 7, 1, 0, 0, 0, 0, time.UTC)
    if wd := t.Weekday(); wd == time.Sunday {
        t = t.AddDate(0, 0, -6)
    } else {
        t = t.AddDate(0, 0, -int(wd)+1)
    }
    _, w := t.ISOWeek()
    t = t.AddDate(0, 0, (week-w)*7)
    return t
}
  1. Kira Julat Minggu:

Untuk mendapatkan julat tarikh , tentukan hari pertama minggu dan tambah 6 hari untuk mendapatkan hari terakhir hari.

func WeekRange(year, week int) (start, end time.Time) {
    start = WeekStart(year, week)
    end = start.AddDate(0, 0, 6)
    return
}

Contoh:

fmt.Println(WeekRange(2018, 1))
fmt.Println(WeekRange(2018, 2))
fmt.Println(WeekRange(2019, 1))
fmt.Println(WeekRange(2019, 2))

Output (cuba di Taman Permainan Go):

2018-01-01 00:00:00 +0000 UTC 2018-01-07 00:00:00 +0000 UTC
2018-01-08 00:00:00 +0000 UTC 2018-01-14 00:00:00 +0000 UTC
2018-12-31 00:00:00 +0000 UTC 2019-01-06 00:00:00 +0000 UTC
2019-01-07 00:00:00 +0000 UTC 2019-01-13 00:00:00 +0000 UTC

Nota Tambahan:

Fungsi WeekStart() menguruskan minggu di luar julat. Minggu di luar julat tahun masing-masing ditafsirkan sebagai minggu terakhir atau pertama tahun sebelumnya atau berikutnya.

Atas ialah kandungan terperinci Bagaimana Mengira Julat Tarikh Diberi Nombor Minggu di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn