Perbincangan Pelaksanaan Kalendar dalam JavaScript
Kalendar kami ialah satu jadual
dengan nombor dari 1 hingga hari terakhir bulan.
Masalahnya ialah nombor dalam jadual di baris pertama
tidak sepatutnya bermula dari sel pertama.
Ini secara umumnya jelas. Apa yang tidak jelas ialah dari sel mana sepatutnya ia bermula. Mari kita fikirkan.
Katakan minggu bermula dengan hari Isnin, dan
ia ialah hari sifar. Dalam kes ini, nombor hari
minggu untuk hari pertama bulan sepadan dengan
bilangan sel kosong sebelum hari tersebut. Sebagai contoh,
hari Khamis akan mempunyai nombor 3 dan sebelum
ia akan terdapat 3 sel kosong.
Masalah yang serupa menanti kita di hujung jadual. Di sana juga perlu meninggalkan sel kosong selepas nombor terakhir bulan. Dalam kes ini, bilangan sel kosong akan sama dengan enam, dari mana kita perlu tolak nombor hari minggu untuk hari terakhir bulan.
Sekarang mari kita fikir, bagaimana kita akan membentuk
jadual kita. Jelas sekali, paling mudah ialah
mempunyai array dua dimensi, di mana setiap subarray
mempunyai 7 elemen (= bilangan hari dalam seminggu).
Pada masa yang sama, dalam subarray pertama dan terakhir,
sebahagian elemen mestilah kosong.
Algoritma Tindakan
Kita akan buat fungsi yang akan menghasilkan array
nombor dari 1 hingga hari terakhir bulan.
Kemudian kita buat fungsi yang akan menambah
di awal array bilangan elemen kosong yang diperlukan.
Fungsi yang serupa harus menambah elemen kosong
di hujung array.
Selepas itu, kita akan dapat array satu dimensi
dengan bilangan elemen yang boleh dibahagi dengan 7.
Kita tukar array ini kepada array dua dimensi dengan 7
elemen dalam setiap subarray.
Kemudian kita ambil array dua dimensi ini, ulangi dengan gelung dan bentukkan jadual kita.
Kami akan melaksanakan algoritma tindakan ini secara berperingkat dalam pelajaran seterusnya.