Semak serta-merta sama ada mana-mana tahun adalah tahun lompat. Ketahui: Adakah 2024 tahun lompat? Adakah 2025 tahun lompat? Menggunakan peraturan kalendar Gregorian rasmi. Sempurna untuk perancangan, pengkodan, dan pengesahan tarikh.
Tahun lompat menambahkan satu hari tambahan—29 Februari—ke kalendar kita, memanjangkan tahun menjadi 366 hari dan bukannya 365 biasa. Inilah sebabnya ia penting: Bumi mengambil masa kira-kira 365.25 hari untuk mengelilingi Matahari, bukan tepat 365. Perbezaan seperempat hari ini bertambah. Tanpa tahun lompat, kalendar kita akan bergeser hampir 24 hari setiap abad, yang akhirnya akan meletakkan musim panas pada bulan Disember.
Matemanya elegan. Setiap empat tahun, kita mengumpulkan seperempat hari tersebut (0.25 Ă— 4 = 1) dan menambahkan satu hari penuh ke bulan Februari. Ini memastikan kalendar kita sejajar dengan orbit sebenar Bumi dan menjamin musim kekal di tempatnya.
Pengesahan pantas membuat perbezaan yang nyata apabila anda merancang acara bertahun-tahun ke hadapan, mengesahkan tarikh sejarah, atau membetulkan kod pengendalian tarikh. Masukkan mana-mana tahun 4 digit, dan anda akan mendapat jawapan segera berdasarkan peraturan tepat yang ditakrifkan dalam standard kalendar Gregorian.
Menggunakan alat ini mengambil masa beberapa saat:
Menguji berbilang tahun adalah pantas—tiada muat semula halaman diperlukan. Alat ini berfungsi pada mana-mana peranti: desktop, tablet, atau telefon.
Pemeriksa mengesahkan input anda untuk memastikan keputusan yang tepat:
Apabila sesuatu tidak betul, anda akan melihat mesej ralat khusus seperti "Sila masukkan tahun 4 digit yang sah" atau "Tahun mesti nombor positif." Ini menghalang ralat pengiraan dan membimbing anda ke format input yang betul.
Peraturan kalendar Gregorian mengikuti sistem tiga peringkat. Begini cara kerjanya:
Peraturan 1: Boleh dibahagi dengan 4? Ia adalah tahun lompat.
Peraturan 2: Tunggu sebentar—boleh dibahagi dengan 100? Bukan tahun lompat.
Peraturan 3: Tunggu—boleh dibahagi dengan 400? Ia ADALAH tahun lompat selepas semua.
Dalam amalan, ini bermakna:
tahun mod 400 = 0 → Tahun Lompat (contoh: 2000)tahun mod 100 = 0 → Bukan Tahun Lompat (contoh: 1900)tahun mod 4 = 0 → Tahun Lompat (contoh: 2024)Mengapa pengecualian untuk tahun abad? Tanpa ia, kita akan membuat pembetulan berlebihan. Orbit Bumi adalah 365.2422 hari, bukan 365.25, jadi peraturan mudah "setiap 4 tahun" menambahkan terlalu banyak masa. Pelarasan 400 tahun menyempurnakan kalendar, mengekalkannya tepat dalam 26 saat setahun. Ketepatan itu bermakna kita tidak perlu membuat pelarasan kalendar selama beribu-ribu tahun.
Algoritma ini menggunakan pokok keputusan yang memeriksa pembahagian dalam susunan tertentu. Inilah yang berlaku di sebalik tabir:
Langkah 1: Semak pembahagian dengan 400 terlebih dahulu.
Langkah 2: Semak pembahagian dengan 100.
Langkah 3: Semak pembahagian dengan 4.
Susunan itu penting. Jika anda menyemak pembahagian dengan 100 sebelum 400, anda akan salah mengecualikan tahun seperti 2000. Bermula dengan semakan 400 menangkap tahun lompat abad istimewa lebih awal, yang lebih tepat dan cekap dari segi pengiraan.
Kebanyakan bahasa pengaturcaraan menggunakan operator modulo (%) untuk semakan pembahagian. Apabila year % n = 0, tahun itu dibahagi rata dengan n tanpa baki. Operator mudah ini menjadikan pemeriksaan tahun lompat mudah untuk dilaksanakan dalam mana-mana bahasa, seperti yang anda akan lihat dalam contoh kod di bawah.
Keputusan muncul dalam bahasa yang mudah difahami:
Tahun diulang dalam mesej supaya anda sentiasa tahu tahun yang baru sahaja anda semak—berguna apabila menguji beberapa tahun berturut-turut. Tiada kekaburan, tiada istilah teknikal. Hanya jawapan ya atau tidak yang jelas yang muncul serta-merta.
Inilah di mana semakan tahun lompat menjadi penting dalam senario dunia sebenar:
Semasa membina aplikasi kalendar, pemilih tarikh, atau sistem penjadualan, pengendalian tahun lompat yang tepat menghalang kerosakan data. Pepijat biasa: mengekodkan February kepada 28 hari menyebabkan ranap apabila pengguna cuba memilih 29 Februari dalam tahun lompat. Semasa pengujian, pembangun sering menyemak kes pinggir seperti 2000 (tahun lompat walaupun boleh dibahagi dengan 100) dan 1900 (bukan tahun lompat walaupun boleh dibahagi dengan 4).
Perancang perkahwinan dan penganjur persidangan yang menyewa tempat bertahun-tahun lebih awal perlu mengesahkan sama ada 29 Februari wujud untuk tahun sasaran. Menyewa tempat untuk "29 Februari 2025" akan menjadi kesilapan yang mahal—2025 bukan tahun lompat. Alat ini menghalang ralat tersebut sebelum kontrak ditandatangani.
Sistem kewangan menggunakan konvensyen kiraan hari untuk pengiraan faedah, penetapan harga bon, dan pelaporan fiskal. Pengiraan ini mesti mengambil kira tahun 366 hari berbanding tahun 365 hari. Melakukan kesalahan mempengaruhi faedah terakru, jadual pelunasan pinjaman, dan pematuhan peraturan.
Ahli genealogi dan sejarawan yang mengesahkan rekod kelahiran, peristiwa bersejarah, atau tarikh arkib perlu mengesahkan sama ada tarikh 29 Februari yang didakwa itu mungkin. Sebelum menghabiskan jam mencari rekod dari "29 Februari 1900", anda ingin tahu bahawa tarikh itu tidak pernah wujud—1900 bukan tahun lompat.
Guru yang menjelaskan peraturan pembahagian, sistem kalendar, atau astronomi di sebalik pengukuran masa boleh menggunakan alat ini untuk demonstrasi langsung. Pelajar serta-merta melihat mengapa 2000 adalah tahun lompat tetapi 1900 tidak, menjadikan peraturan pengecualian konkrit dan bukannya abstrak.
Orang yang lahir pada 29 Februari hanya mengalami hari lahir sebenar setiap empat tahun. Mengira umur mereka dengan tepat—terutamanya untuk tujuan undang-undang seperti kelayakan mengundi atau faedah persaraan—memerlukan pengetahuan tepat tahun mana yang termasuk 29 Februari sejak kelahiran mereka.
Jika anda sedang bekerja dengan tarikh dan kalendar, alat tambahan ini mungkin membantu:
Menyesuaikan kalendar kita dengan orbit Bumi telah mengambil masa lebih 2,000 tahun untuk disempurnakan.
Julius Caesar, yang dinasihatkan oleh ahli astronomi Mesir Sosigenes, memperkenalkan sistem tahun lompat sistematik pertama. Setiap empat tahun akan mendapat satu hari tambahan, dengan purata 365.25 hari setahun. Ini adalah revolusi—kalendar Rom sebelumnya telah menjadi begitu tidak selaras dengan musim sehingga sering memerlukan pembetulan manual.
Sistem Julian berfungsi dengan baik selama beberapa abad. Tetapi terdapat masalah: orbit Bumi tidak tepat 365.25 hari. Ia adalah 365.2422 hari—kira-kira 11 minit lebih pendek. Ralat kecil itu bertambah. Dalam tempoh 128 tahun, kalendar bergerak sehari lebih awal daripada tahun solar.
Pada abad ke-16, kalendar Julian telah bergerak 10 hari lebih awal. Easter, yang dikira berdasarkan ekuinoks musim bunga, berlaku pada tarikh yang salah. Ini mengganggu Pope Gregory XIII sehingga beliau mengarahkan pembaharuan kalendar menyeluruh.
Penyelesaian, yang direka oleh ahli astronomi Aloysius Lilius dan Christopher Clavius, adalah elegan:
Pembaharuan Gregorian adalah tepat dari segi matematik. Di bawah sistem Julian, terdapat 100 tahun lompat setiap 400 tahun. Sistem Gregorian mengurangkannya kepada 97 (mengalih tiga tahun abad yang boleh dibahagi dengan 100 tetapi bukan 400).
Ini mewujudkan tahun purata 365.2425 hari (365 + 97/400). Bandingkan dengan tempoh orbit Bumi sebenar 365.2422 hari—perbezaan hanya 26 saat setahun. Pada kadar itu, kalendar hanya akan bergerak sehari setiap 3,300 tahun.
Negara-negara Katholik menerima kalendar baru serta-merta pada 1582. Negara-negara Protestan dan Ortodoks enggan, menganggapnya campur tangan papal. Great Britain dan tanah jajahannya di Amerika tidak menukar sehingga 1752, di mana mereka terpaksa langkau 11 hari (2 September diikuti 14 September). Orang ramai mengadakan rusuhan, yakin kerajaan telah "mencuri" 11 hari kehidupan mereka.
Rusia tidak menerima kalendar Gregorian sehingga 1918, selepas Revolusi Bolshevik. Inilah sebabnya "Revolusi Oktober" berlaku pada November mengikut kira-kira Gregorian. Greece menunggu sehingga 1923, dan Turkey menjadi negara utama terakhir yang menukar pada 1926.
Hari ini, kalendar Gregorian adalah standard sivil antarabangsa. Peraturan tahun lompat dikodifikasi dalam ISO 8601, standard antarabangsa untuk tarikh dan masa. Setiap bahasa pengaturcaraan utama termasuk logik tahun lompat dalam perpustakaan pengendalian tarikh, memastikan pengiraan konsisten di seluruh dunia.
Jika anda sedang mengimplementasikan logik tahun lompat dalam aplikasi anda sendiri, berikut adalah cara melakukannya dengan betul dalam beberapa bahasa. Setiap contoh mengikuti algoritma yang sama—semak pembahagian dengan 400 terlebih dahulu, kemudian 100, kemudian 4—untuk memastikan kes-kes pinggir seperti 2000 ditangani dengan betul.
1def is_leap_year(year):
2 """
3 Semak sama ada tahun adalah tahun lompat menggunakan peraturan kalendar Gregorian.
4 Mengembalikan True jika tahun lompat, False sebaliknya.
5 """
6 if year % 400 == 0:
7 return True
8 elif year % 100 == 0:
9 return False
10 elif year % 4 == 0:
11 return True
12 else:
13 return False
14
15# Contoh penggunaan:
16year = 2024
17if is_leap_year(year):
18 print(f"Ya, {year} adalah tahun lompat")
19else:
20 print(f"Tidak, {year} bukan tahun lompat")
21
22# Uji dengan berbilang tahun
23test_years = [2000, 1900, 2024, 2023, 1600, 2100]
24for year in test_years:
25 result = "adalah" if is_leap_year(year) else "bukan"
26 print(f"{year} {result} tahun lompat")
271function isLeapYear(year) {
2 /**
3 * Semak sama ada tahun adalah tahun lompat menggunakan peraturan kalendar Gregorian.
4 * Mengembalikan true jika tahun lompat, false sebaliknya.
5 */
6 if (year % 400 === 0) {
7 return true;
8 } else if (year % 100 === 0) {
9 return false;
10 } else if (year % 4 === 0) {
11 return true;
12 } else {
13 return false;
14 }
15}
16
17// Versi ringkas alternatif
18function isLeapYearCompact(year) {
19 return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
20}
21
22// Contoh penggunaan:
23const year = 2024;
24if (isLeapYear(year)) {
25 console.log(`Ya, ${year} adalah tahun lompat`);
26} else {
27 console.log(`Tidak, ${year} bukan tahun lompat`);
28}
29
30// Uji dengan berbilang tahun
31const testYears = [2000, 1900, 2024, 2023, 1600, 2100];
32testYears.forEach(year => {
33 const result = isLeapYear(year) ? "adalah" : "bukan";
34 console.log(`${year} ${result} tahun lompat`);
35});
361public class LeapYearChecker {
2 /**
3 * Semak sama ada tahun adalah tahun lompat menggunakan peraturan kalendar Gregorian.
4 * @param year Tahun untuk disemak
5 * @return true jika tahun lompat, false sebaliknya
6 */
7 public static boolean isLeapYear(int year) {
8 if (year % 400 == 0) {
9 return true;
10 } else if (year % 100 == 0) {
11 return false;
12 } else if (year % 4 == 0) {
13 return true;
14 } else {
15 return false;
16 }
17 }
18
19 public static void main(String[] args) {
20 int year = 2024;
21 if (isLeapYear(year)) {
22 System.out.println("Ya, " + year + " adalah tahun lompat");
23 } else {
24 System.out.println("Tidak, " + year + " bukan tahun lompat");
25 }
26
27 // Uji dengan berbilang tahun
28 int[] testYears = {2000, 1900, 2024, 2023, 1600, 2100};
29 for (int testYear : testYears) {
30 String result = isLeapYear(testYear) ? "adalah" : "bukan";
31 System.out.println(testYear + " " + result + " tahun lompat");
32 }
33 }
34}
351' Fungsi Excel VBA untuk Semakan Tahun Lompat
2Function IsLeapYear(year As Integer) As Boolean
3 ' Semak sama ada tahun adalah tahun lompat menggunakan peraturan kalendar Gregorian
4 ' Mengembalikan True jika tahun lompat, False sebaliknya
5
6 If year Mod 400 = 0 Then
7 IsLeapYear = True
8 ElseIf year Mod 100 = 0 Then
9 IsLeapYear = False
10 ElseIf year Mod 4 = 0 Then
11 IsLeapYear = True
12 Else
13 IsLeapYear = False
14 End If
15End Function
16
17' Penggunaan dalam sel Excel:
18' =IF(IsLeapYear(A1), "Ya, " & A1 & " adalah tahun lompat", "Tidak, " & A1 & " bukan tahun lompat")
191#include <stdio.h>
2#include <stdbool.h>
3
4/**
5 * Semak sama ada tahun adalah tahun lompat menggunakan peraturan kalendar Gregorian.
6 * Mengembalikan true jika tahun lompat, false sebaliknya.
7 */
8bool is_leap_year(int year) {
9 if (year % 400 == 0) {
10 return true;
11 } else if (year % 100 == 0) {
12 return false;
13 } else if (year % 4 == 0) {
14 return true;
15 } else {
16 return false;
17 }
18}
19
20int main() {
21 int year = 2024;
22
23 if (is_leap_year(year)) {
24 printf("Ya, %d adalah tahun lompat\n", year);
25 } else {
26 printf("Tidak, %d bukan tahun lompat\n", year);
27 }
28
29 // Uji dengan berbilang tahun
30 int test_years[] = {2000, 1900, 2024, 2023, 1600, 2100};
31 int num_years = sizeof(test_years) / sizeof(test_years[0]);
32
33 for (int i = 0; i < num_years; i++) {
34 const char *result = is_leap_year(test_years[i]) ? "adalah" : "bukan";
35 printf("%d %s tahun lompat\n", test_years[i], result);
36 }
37
38 return 0;
39}
40Versi ringkas JavaScript menunjukkan bagaimana anda boleh mengungkapkan keseluruhan peraturan sebagai ekspresi boolean tunggal: (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0). Walaupun padat, struktur if-else sering lebih jelas untuk penyelenggaraan dan penyahpepijatan.
Mari kita berjalan melalui contoh khusus untuk melihat bagaimana peraturan digunakan:
2024 (tahun lompat biasa)
2000 (tahun abad yang rumit)
1900 (tahun abad yang bukan)
2023 (tahun bukan lompat biasa)
2100 (tahun abad masa hadapan)
1600 (tahun lompat abad sejarah)
Dalam mana-mana tempoh 400 tahun, terdapat tepat 97 tahun lompat:
Corak ini berulang selamanya, menjadikan pengiraan kalendar boleh diramal merentasi abad.
S: Adakah 2024 adalah tahun lompat?
Ya. 2024 boleh dibahagi dengan 4 dan bukan tahun abad, jadi ia layak sebagai tahun lompat. Februari 2024 mempunyai 29 hari.
S: Adakah 2025 adalah tahun lompat?
Tidak. 2025 tidak boleh dibahagi dengan 4 (2025 Ă· 4 = 506.25), jadi ia adalah tahun biasa 365 hari. Februari 2025 akan mempunyai hanya 28 hari.
S: Adakah 2028 akan menjadi tahun lompat?
Ya. 2028 mengikuti corak standard—boleh dibahagi dengan 4, bukan tahun abad—menjadikannya tahun lompat dengan 366 hari.
S: Mengapa 2000 adalah tahun lompat tetapi 1900 tidak?
Tahun abad mengikuti peraturan yang lebih ketat. Ia mesti boleh dibahagi dengan 400 untuk layak sebagai tahun lompat. Memandangkan 2000 Ă· 400 = 5 (nombor bulat), ia adalah tahun lompat. Tetapi 1900 Ă· 400 = 4.75 (bukan bulat), jadi 1900 bukan tahun lompat. Ini mengejutkan ramai orang.
S: Apakah peraturan tahun lompat?
Boleh dibahagi dengan 4? Tahun lompat. Boleh dibahagi dengan 100? Bukan tahun lompat. Boleh dibahagi dengan 400? Tahun lompat walau apa pun. Peraturan ini digunakan mengikut susunan yang tepat untuk menangani kes-kes khusus dengan betul.
S: Mengapa kita memerlukan tahun lompat?
Bumi mengelilingi Matahari dalam 365.2422 hari, bukan tepat 365. Tanpa tahun lompat, kalendar kita akan bergerak 24 hari setiap abad. Musim panas akhirnya akan berlaku pada musim sejuk. Tahun lompat mengekalkan kalendar diselaraskan dengan orbit sebenar Bumi dan memelihara musim.
S: Berapa kerap tahun lompat berlaku?
Biasanya setiap 4 tahun, tetapi dengan pengecualian. Dalam mana-mana tempoh 400 tahun, terdapat tepat 97 tahun lompat (bukan 100), disebabkan peraturan tahun abad.
S: Adakah 2100 akan menjadi tahun lompat?
Tidak. Sebagai tahun abad, 2100 mesti boleh dibahagi dengan 400 untuk layak, dan ia tidak (2100 Ă· 400 = 5.25). Tahun lompat abad seterusnya selepas 2000 akan menjadi 2400.
S: Bagaimana jika anda dilahirkan pada 29 Februari?
Orang yang lahir pada hari lompat (29 Februari) hanya mempunyai hari lahir sebenar setiap empat tahun. Pada tahun bukan lompat, mereka biasanya meraikan pada 28 Februari atau 1 Mac. Dari segi undang-undang, kebanyakan bidang kuasa menganggap 28 Februari sebagai hari lahir mereka untuk tujuan berkaitan umur.
S: Betapa tepatkah kalendar Gregorian?
Sangat tepat. Ia hanya bergerak 26 saat setahun—kira-kira satu hari setiap 3,300 tahun. Bandingkan dengan kalendar Julian, yang bergerak satu hari setiap 128 tahun.
Temui lebih banyak alat yang mungkin berguna untuk aliran kerja anda