Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Penukaran kalendar lunar JavaScript

Penukaran kalendar lunar JavaScript

王林
王林asal
2023-05-09 22:24:091144semak imbas

Dengan perkembangan pesat dunia, kehidupan kita menjadi lebih dan lebih mudah, dan teknologi rangkaian menjadi semakin matang. Walau bagaimanapun, dalam beberapa aspek, kita masih perlu bergantung kepada pengetahuan dan kemahiran tradisional untuk membantu kita menyelesaikan masalah. Sebagai contoh, dalam kehidupan seharian, kita selalunya perlu menukar kalendar lunar kepada kalendar suria, tetapi proses penukaran ini sebenarnya agak menyusahkan. Tetapi tidak mengapa Dalam artikel ini, kami akan memperkenalkan cara menggunakan JavaScript untuk menukar kalendar lunar kepada kalendar suria, menjadikan proses lebih mudah.

Pertama sekali, kita perlu menjelaskan cara menukar tarikh kalendar suria kepada tarikh kalendar lunar. Kalendar lunar tradisional ialah kalendar yang dikira berdasarkan fasa bulan dan kalendar suria Ia juga merupakan unit penetapan masa tradisional dalam budaya Cina. Di China, orang biasanya menggunakan kalendar ini untuk menentukan tarikh penting seperti perayaan bulan dan hari lahir bulan. Walau bagaimanapun, disebabkan kerumitan dan sifat sukar digunakan sistem kalendarnya, penukaran langsung adalah sukar. Oleh itu, kita perlu menggunakan beberapa teknologi moden untuk membantu kita menyelesaikan proses ini.

JavaScript ialah bahasa skrip yang digunakan untuk pembangunan web, yang boleh melaksanakan reka bentuk interaktif dan dinamik pada halaman web. Dengan bantuan objek tarikh JavaScript (Tarikh), kami boleh mendapatkan tarikh, masa, minggu, bulan dan maklumat semasa dengan mudah. Dalam JavaScript, kita boleh mencipta objek Tarikh dan menggunakannya untuk mewakili tarikh dan masa. Sintaks objek Date adalah seperti berikut:

var date = new Date();

Pernyataan ini akan mencipta objek Date, yang mewakili tarikh dan masa semasa. Jika kita ingin mendapatkan objek Tarikh tarikh tertentu, kita boleh menggunakan sintaks berikut:

var date = new Date(year, month, day, hours, minutes, seconds, milliseconds);

Antaranya, tahun mewakili tahun mewakili bulan, dan julat nilai ialah 0-11, 0 mewakili Januari, 11 hari Disember mewakili tarikh, julat nilai ialah 1-31 jam, julat nilai ialah 0-23 minit, julat nilai ialah 0-59; saat mewakili bilangan saat, julat nilai ialah 0-59 milisaat mewakili bilangan milisaat, dan julat nilai ialah 0-999. Ambil perhatian bahawa parameter terakhir boleh ditinggalkan. Jika diabaikan, bilangan milisaat menjadi lalai kepada 0.

Seterusnya, kami akan memperkenalkan cara menggunakan JavaScript untuk menukar kalendar lunar. Pertama, kita perlu mengetahui korespondensi antara kalendar lunar dan kalendar suria. Kalendar lunar dikira berdasarkan fasa bulan dan kalendar suria, yang berdasarkan tempoh revolusi Bumi mengelilingi matahari. Oleh itu, kita perlu terlebih dahulu menentukan hari dalam setahun hari ini, dan kemudian menggunakan beberapa peraturan untuk mengira tarikh kalendar lunar.

Pertama, kita perlu menentukan tatasusunan untuk menyimpan bilangan hari lunar dalam setiap tahun. Setiap bit tatasusunan menunjukkan sama ada tahun itu adalah tahun lompat. Jika 0, ia bukan tahun lompat. Oleh kerana bilangan hari dalam setiap bulan lunar tidak tetap, kita perlu mengira bilangan hari dalam setiap bulan lunar berdasarkan tatasusunan ini.

var lunarMonths = [
    0x04bd8,   // 1900
    0x04ae0,
    0x0a570,
    0x054d5,
    0x0d260,
    0x0d950,
    0x16554,
    0x056a0,
    0x09ad0,
    0x055d2,
    0x04ae0,
    0x0a5b6,
    0x0a4d0,
    0x0d250,
    0x1d255,
    0x0b540,
    0x0d6a0,
    0x0ada2,
    0x095b0,
    0x14977,
    0x04970,
    0x0a4b0,
    0x0b4b5,
    0x06a50,
    0x06d40,
    0x1ab54,
    0x02b60,
    0x09570,
    0x052f2,
    0x04970,
    0x06566,
    0x0d4a0,
    0x0ea50,
    0x06e95,
    0x05ad0,
    0x02b60,
    0x186e3,
    0x092e0,
    0x1c8d7,
    0x0c950,
    0x0d4a0,
    0x1d8a6,
    0x0b550,
    0x056a0,
    0x1a5b4,
    0x025d0,
    0x092d0,
    0x0d2b2,
    0x0a950,
    0x0b557,
    0x06ca0,
    0x0b550,
    0x15355,
    0x04da0,
    0x0a5b0,
    0x14563,
    0x092e0,
    0x0c960,
    0x0d954,
    0x0d4a0,
    0x0da50,
    0x07552,
    0x056a0,
    0x0abb7,
    0x025d0,
    0x092d0,
    0x0cab5,
    0x0a950,
    0x0b4a0,
    0x0baa4,
    0x0ad50,
    0x055d9,
    0x04bd0,
    0x0a4d0,
    0x0d8d7,
    0x0d250,
    0x0d520,
    0x0dd45,
    0x0b5a0,
    0x056d0,
    0x055b2,
    0x049b0,
    0x0a577,
    0x0a4b0,
    0x0aa50,
    0x1b255,
    0x06d20,
    0x0ada0,
    0x14b63
];

Seterusnya, kita perlu menentukan tatasusunan untuk menyimpan tarikh kalendar lunar yang sepadan dengan tarikh kalendar suria hari pertama setiap tahun dari 1900 hingga 2050. Oleh kerana tatasusunan ini menyimpan data dengan bulan lompat sebagai simbol, kita perlu menggunakan nilai binari untuk menunjukkan bulan mana dalam tahun itu adalah bulan lompat, atau 0 jika tiada bulan lompat.

var lunarInfo = [
    0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2, // 1900-1909
    0x04ae0,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,0x04970, // 1910-1919
    0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,0x06566, // 1920-1929
    0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,0x0d4a0, // 1930-1939
    0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,0x06ca0, // 1940-1949
    0x0b550,0x15355,0x04da0,0x0a5b0,0x14563,0x092e0,0x0c960,0x0d954,0x0d4a0,0x0da50, // 1950-1959
    0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,0x0a950,0x0b4a0,0x0baa4,0x0ad50, // 1960-1969
    0x055d9,0x04bd0,0x0a4d0,0x0d8d7,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2, // 1970-1979
    0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0,0x14b63,0x09370,0x04970, // 1980-1989
    0x064b0,0x0d4a0,0x1d8a7,0x0d550,0x0d6a0,0x0dea2,0x0a5b0,0x055d4,0x052d0,0x0a9a8, // 1990-1999
    0x0e950,0x06aa0,0x1a6c4,0x0aae0,0x0a2e0,0x0d2e3,0x0c950,0x0ca50,0x0da50,0x05aa4, // 2000-2009
    0x056d0,0x0adb8,0x025d0,0x092d0,0x0cab6,0x0a950,0x0b4a0,0x0baa0,0x0ad50,0x05550, // 2010-2019
    0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60, // 2020-2029
    0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,0x05aa0,0x076a3,0x096d0,0x04dd5,0x04ad0, // 2030-2039
    0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577, // 2040-2049
    0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0aea0,0x1a5b6,0x052b0,0x0a930,0x07954,0x06aa0, // 2050
];

Kemudian, kita perlu menulis fungsi untuk mengira tarikh lunar berdasarkan tarikh suria yang diberikan. Proses pelaksanaan fungsi ini agak rumit Idea umum adalah untuk menentukan tahun, bulan dan hari tarikh kalendar suria semasa, dan kemudian mengiranya mengikut peraturan kalendar lunar yang berkaitan. Saya tidak akan menerangkannya secara terperinci di sini Pembaca yang berminat boleh mencari maklumat untuk kajian mendalam.

Akhir sekali, kita perlu memaparkan tarikh lunar yang diperolehi ke dalam halaman web. Pendekatan khusus boleh menggunakan HTML dan CSS untuk reka bentuk, dan menetapkan gaya dan susun atur mengikut keperluan yang berbeza.

Ringkasnya, dengan bantuan fungsi JavaScript yang berkuasa, kami boleh menukar kalendar lunar kepada kalendar suria dengan mudah, menjadikannya lebih mudah untuk kami merekod dan mengurus kehidupan kami dengan lebih baik. Pada masa yang sama, kami juga boleh meluaskan kemahiran kami dan meningkatkan daya saing kami dengan mempelajari JavaScript.

Atas ialah kandungan terperinci Penukaran kalendar lunar JavaScript. 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