XK-Time adalah alat untuk konversi waktu, perhitungan waktu, pemformatan waktu, parsing waktu, kalender, ekspresi cron waktu dan waktu NLP, dll. Menggunakan java8, back-aman, mudah digunakan, dan lebih dari 70 templat format tanggal umum, mendukung kelas dan tanggal waktu JAVA8, dependen ringan, no-party.
<dependency>
<groupId>com.github.xkzhangsan</groupId>
<artifactId>xk-time</artifactId>
<version>3.2.4</version>
</dependency>
Mini版本不包含 time nlp 功能,更简洁。
<dependency>
<groupId>com.github.xkzhangsan</groupId>
<artifactId>xk-time</artifactId>
<version>3.2.4.Mini</version>
</dependency>
compile group: 'com.github.xkzhangsan', name: 'xk-time', version: '3.2.4'
XK-Time Toolkit menggunakan Java8 API, di antaranya instan, localdate, localdatetime, localtime, zonedDatetime, dll. Semua kelas yang aman-aman, dan metode yang lebih kaya telah ditambahkan. Atas dasar ini, kelas alat terkait dikembangkan untuk membuatnya lebih aman, membuatnya lebih nyaman untuk digunakan.
XK-Time Toolkit, fungsi-fungsi di atas dibagi menjadi 3 kelas alat sesuai dengan konversi waktu, perhitungan waktu, dan pemformatan waktu dan analisis: DatetimeConVerterutil, DateTimeCalculatorutil, dan DateTimeformatterutil. Setiap kelas hanya memiliki satu fungsi untuk mudah digunakan.
2.4.1 Implementasi paket waktu Joda-Time dan Java8 pada dasarnya sama, keduanya didominasi oleh Stephen Colebourne. Mulai dari Java8, disarankan untuk menggunakan paket waktu Java8 untuk menggantikan joda-time.
2.4.2 XK-Time didasarkan pada Java 8 Date API dan merupakan alat tambahan, mirip dengan dateutil sebelumnya.
(1) Perpustakaan kelas Java8 diimplementasikan secara vertikal pada tingkat hierarkis, sementara XK-Time dibagi menjadi 3 kelas sesuai dengan fungsi umum, seperti konversi, perhitungan, pemformatan dan analisis.
(2) Tanggal Java8 dikonversi menjadi kelas baru, dan Anda perlu melihat dokumentasi API, dan XK-Time dikonversi secara internal, sehingga tanggal tersebut dapat secara langsung menggunakan fitur baru Java8.
(3) XK-Time mengimplementasikan fungsi dateutil yang umum digunakan sesuai dengan Java 8 API, dan pada saat yang sama, beberapa ekstensi dibuat untuk menggunakan lebih nyaman.
Termasuk:
(1) Tanggal, LocalDate, LocalDateTime, Localtime, Instan, ZonedDateTime, Year Month, Timestamp, Timestamp, dan TemporalAccessor dikonversi satu sama lain.
(2) Unit waktu seperti hari, jam, menit, detik dan milidetik dikonversi satu sama lain, mendukung konversi yang tepat dari unit kecil menjadi unit besar. Misalnya, Minutetohourspresise (num panjang) 90 menit hingga jam, yaitu 1,5 jam.
(3) Konversi zonedDatetime sambil mendukung konversi ke zona waktu yang ditentukan, seperti tozonedDateTime (tanggal tanggal, string zonaid) dan tozonedDatetimeandtransformzone (localDateTime localDateTime, string targetzoneid).
Perhatikan bahwa untuk konversi terkait zonedDatetime, terutama untuk konversi waktu lain ke zonedDateTime, Anda harus memperhatikan konsistensi waktu dan zona waktu yang sesuai.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: DatetimeConverterutiltest.
termasuk:
(1) Dapatkan metode atribut waktu (mendukung tahun, bulan, jam, menit, milidetik, minggu, perangko waktu, dll.), Dapatkan* misalnya, getYear (tanggal) mendapatkan bagian tahun, Getmonthcnlong (tanggal tanggal) mendapatkan bulan Cina, getdayofweekcn (tanggal), dapatkan minggu Cina.
(2) Dapatkan metode operasi waktu plus, plus* misalnya, plusyears (tanggal tanggal, jumlah panjang) meningkatkan nilai jumlahtoadd pada tahun waktu saat ini.
(3) Dapatkan metode operasi waktu-batas, dikurangi* misalnya, minusyears (tanggal tanggal, jumlah yang panjang), tahun-tahun saat ini mengurangi nilai jumlahtOsubtract.
(4) Dapatkan metode atribut modifikasi waktu, dengan* misalnya, dengan tahun (tanggal tanggal, newValue lama) untuk memodifikasi nilai waktu dan tahun saat ini menjadi newValue.
(5) Dapatkan 2 kali untuk membandingkan, antara* misalnya, BetweentotalDays (Tanggal StartInclusive, Date ENDEXKLUSIF) Bandingkan 2 kali untuk mengembalikan jumlah total hari.
(6) Metode umum lainnya, seperti isleapyear (tanggal tanggal) untuk menentukan apakah itu tahun kabisat, isweekend (tanggal tanggal) untuk menentukan apakah itu akhir pekan, isExpiry (string yearmontstr) untuk kedaluwarsa, dll.
(7) Metode Perhitungan Konversi Zona Waktu, Transformasi*, seperti Transform (ZonedDateTime ZonedDateTime, String ZoneID)
(8) Bandingkan 2 kali dan metode kesetaraan, bandingkan*, seperti perbandingan (Tanggal Tanggal1, Tanggal Tanggal 2)
(9) Dapatkan metode waktu mulai yang tepat, mulai*, end*, seperti startTimeOfmonth () waktu mulai bulan tanggal hari pertama +00: 00: 00, endtimeofmonth () Tanggal hari terakhir +23: 59: 59 akurat hingga detik; Endaccuracytime dari*, akurat untuk milidetik (tanggal), akurat untuk nanodetik (localDateTime).
(10) Metode untuk membandingkan dan menilai bulan dan hari yang sama, Issamememthday*, AntaraNextSamemonthday*, NextSamememthday*, misalnya, untuk penilaian perbandingan tanggal berkala seperti ulang tahun, festival, dll.
(11) Metode Perhitungan Konstelasi, GetConstellation*, seperti getConstellationNamecn (String Monthaystr), menghitung rasi bintang berdasarkan tanggal.
(12) Hitung daftar waktu dari tahun dan bulan yang ditentukan atau interval waktu mulai, dapatkan daftar*, seperti getDatelist (tahun int, bulan int), menghitung daftar waktu tahun dan bulan yang ditentukan.
(13) Metode untuk mengurangi akurasi waktu, reduceaccuracyto*, seperti reduceaccuracytoday (tanggal tanggal), mengurangi akurasi waktu menjadi hari, dan tambahkan 0 ke metode lain, kembali, misalnya, 2020-04-23 00:00:00.
(14) Dapatkan metode timestamp, getepoch*, misalnya getepochmilli () mendapatkan stempel waktu, getepochmilliformat () mendapatkan string format cap waktu (yyyy-mm-dd hh: mm: ss)
(15) Metode perhitungan usia, getage*, seperti getage (ulang tahun tanggal), menghitung usia dengan ulang tahun.
(16) Metode untuk menentukan apakah ulang tahun ada di sini, isbirthday*, misalnya, isbirthday (tanggal ulang tahun), tentukan apakah tanggal saat ini ada di sini berdasarkan ulang tahun.
(17) Bagaimana cara menghitung jumlah minggu, minggu*, seperti minggu bulan (tanggal), minggu mana dalam bulan itu tanggal.
(18) Tentukan apakah Metode Senin dan Jumat, Ismonday*, Iszhouyi*, seperti Iszhouyi (tanggal tanggal), Ismonday.
(19) Metode perhitungan dua belas jam, gettwelvetwo*, seperti gettwelvetwo (tanggal tanggal), dapatkan dua belas jam yang sesuai dengan waktu yang ditentukan.
(20) metode perhitungan kuartal, getquarter*, seperti getquarter (tanggal tanggal), dapatkan kuartal yang sesuai dengan waktu yang ditentukan.
(21) Dapatkan metode waktu mulai yang akurat untuk kuartal (empat kuartal), kuartal StartTimeof*, seperti StartTimeOfIrstquarter (tahun int), dapatkan kuartal pertama tahun yang ditentukan.
(22) Dapatkan metode waktu mulai tahun yang akurat, startTimeOfyear, seperti startTimeOfyear (int tahun), dapatkan waktu mulai tahun yang ditentukan.
(23) Waktu yang umum digunakan (besok, minggu depan, bulan depan, tahun depan, dll.) Metode perhitungan, seperti besok (), hitung besok, dan tanggal pengembalian.
(24) Modifikasi metode nilai minggu dengan harifweek*, seperti withdayofweek (tanggal, newValue panjang), memodifikasi minggu dengan nilai newValue yang ditentukan, dan tanggal pengembalian.
(25) Perhitungan Hari Kerja Cina (termasuk informasi liburan), termasuk metode seperti menentukan apakah tanggal saat ini adalah hari kerja dan hari kerja berikutnya, ischineseworkday*, nextchineseworkday*,
Misalnya, ischineseworkday (tanggal, string holidaydata), nextchineseworkday (tanggal, string holidaydata),
Data liburan, jika data liburan tidak mendukung tahun ini, itu akan dinilai dari Senin hingga Jumat sebagai hari kerja. Di bawah ini adalah informasi liburan yang saya kumpulkan untuk 2021:
2021-01-01: 0,2021-02-07: 1.2021-02-11: 0,2021-02-12: 0,2021-02-15: 0,2021-02-16: 0,202 1-02-17: 0,2021-02-20: 1.2021-04-05: 0,2021-04-25: 1.2021-05-03: 0,2021-05-04: 0,2021-0 5-05: 0,2021-05-08: 1.2021-06-14: 0,2021-09-18: 1.2021-09-20: 0,2021-09-21: 0,2021-09-2 6: 1.2021-10-01: 0,2021-10-04: 0,2021-10-05: 0,2021-10-06: 0,2021-10-07: 0,2021-10-09: 1
(26) Tentukan apakah ada metode tumpang tindih (persimpangan) untuk 2 periode waktu atau lebih, isoverlap*, seperti isoverlap (tanggal startDate1, tanggal endDate1, tanggal startDate2, tanggal endDate2), pengembalian tumpang tindih true.
(27) Metode untuk menghitung waktu rata -rata, rata -rata*, seperti rata -rata (daftar data), mengembalikan waktu rata -rata, seperti "15:03:03".
(28) Hitung metode hitung mundur berdasarkan nilai milidetik, mendukung objek waktu yang masuk dan format yang ditentukan, hitung mundur*, seperti hitung mundur (long millis), dan mengembalikan hitung mundur, seperti "27 jam, 10 menit, 30 detik".
(29) Dapatkan metode daftar waktu pemformatan untuk interval yang ditentukan, seperti getDateFormatList (start tanggal, akhir tanggal, string dateFormatPattern) mendukung lewat dalam templat pemformatan.
(30) Hitung metode waktu yang tumpang tindih (persimpangan) dari 2 periode waktu, seperti overlaptime (startDate tanggal1, tanggal akhir1, startDate tanggal2, tanggal endDate2), dan mengembalikan nilai milidetik.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: Datetimecalculatorutiltest.
Berisi format tanggal umum seperti:
yyyy-mm-dd
HH: MM: SS
yyyy-mm-dd hh: mm: ss
YYYY-MM-DD HH: MM: SS.SSS
yyyy-mm-dd hh: mm: ss.sssssssss
yyyy-mm-dd HH: mm: ssssssssssssssss
yyyy-mm-dd'hh: mm: ssz, dll., Mendukung waktu yang tepat seperti milidetik, mikrodetik dan nanodetik.
(1) Metode format, format*, seperti formattodateStr (tanggal tanggal), mengembalikan bagian tanggal, seperti: yyyy-mm-dd;
Format (tanggal tanggal, formatter DateTimeformatter) Anda dapat memilih formatter yang ditentukan seperti yyyy_mm_dd_hh_mm_ss_fmt (yyyy-mm-dd hh: mm: ss) tanggal pemformatan.
(2) metode analitik, parse*, seperti parsedateStrtodate (string text) parse tanggal yyyy-mm-dd, tanggal pengembalian;
Parsetodate (Teks String, Formatter DateTimeFormatter) Parse sampai saat ini menurut formatter.
(3) Metode parsing otomatis, secara otomatis mengenali dan menguraikan sesuai dengan karakteristik string, SmartParse*, seperti SmartParsetodate (Teks String) secara otomatis parse tanggal.
(4) Metode parsing otomatis untuk format ISO (termasuk T) secara otomatis diakui dan diuraikan sesuai dengan karakteristik string. Parseiso*, seperti parseisotodate (string text) secara otomatis memarsa tanggal.
(5) Metode penguraian waktu penguraian, parseepochmilli*, seperti parseepochmillitodate (teks string), stempel waktu penguraian adalah tanggal, seperti 1590224790000.
(6) Parse format default tanggal, parsedededefaultstr*, seperti parsedededefaultstrtodate (string text)
Analisis Eee Mmm DD HH: MM: SS ZZZ YYYY misalnya: Sabtu 23 Mei 17:06:30 CST 2020 adalah tanggal.
(7) Metode pemformatan zona waktu kustom, seperti format (tanggal tanggal, formatter datetimeformatter, string zonaID), tanggal format menurut zonaid.
(8) Kustomisasi metode pemformatan template, seperti format (tanggal tanggal, string dateFormatPattern), tanggal format menurut DateFormatPattern.
(9) Metode parsing template khusus, seperti parsetodate (Teks String, String DateFormatPattern), Tanggal Format Menurut DateFormatPattern.
(10) Format Default Timestamp (yyyy-mm-dd HH: mm: ss.ffffffffffff di mana ffffffff nanoseconds, hilangkan metode pemformatan 0) berikut.
Misalnya formatTampesTampstyle (tanggal tanggal).
(11) Format Default Timestamp (yyyy-mm-dd HH: mm: ss.ffffffffffff di mana ffffffff adalah nanoseconds, menghilangkan yang berikut 0).
Misalnya, parsetimestampstyletodate (Teks String).
(12) Metode untuk memverifikasi apakah format tanggal benar, isValidDate*, seperti isValidDate (string text), verifikasi apakah string format yyyy-mm-dd benar.
(13) Menurut metode parsing array templat khusus, seperti parsetodate (string text, string [] dateFormatPatterns), DateFormatPatterns mendukung beberapa templat, dan selama salah satu parsing berhasil, tanggal yang sesuai akan dikembalikan.
(14) Menganalisis waktu bahasa alami, hari ini, besok, minggu depan, bulan depan, tahun depan, kemarin, minggu lalu, bulan lalu, tahun lalu, dll., Seperti parsenaturalanguagetodate (teks string),
parsenaturalangeagetodate (string text, peta <string, string> naturalanguagemap) mendukung peta waktu bahasa alami yang parsing kustom.
(15) Metode pemformatan tanggal Cina, seperti formatochinesedateStr (tanggal tanggal, boolean isuppercase), isuppercase Salah: 11 September 2021 Benar: 11 September 2021.
(16) Metode analisis tanggal Cina, seperti parsechinesedateStrtodate (Teks String), Dukungan: 11 September 2021 dan 11 September, 2021 Analisis Tanggal Format.
Catatan: Saat memformat dan mem -parsing waktu yang berbeda dari zona waktu sistem, gunakan metode pemformatan zona waktu khusus, atau Anda dapat menggunakan metode withzone untuk mengatur ulang zona waktu, seperti:
Yyyy_mm_dd_hh_mm_ss_sss_fmt.withzone (zonaid.of ("Eropa/Paris").
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: datetimeformatterutiltest.
termasuk:
(1) menghasilkan kalender untuk waktu yang ditentukan (kalender yang berisi hierarki tahun, bulan dan hari). GenerateCalendar* Misalnya, generatecalendar (tahun int, bulan int) menghasilkan kalender untuk tahun dan bulan yang ditentukan.
(2) Generate a calendar of the specified time (calendar containing the hierarchy of year, month and day), including the lunar calendar and all holiday information methods, generateCalendarWithHoliday*, generateCalendarWithHoliday(int year, int month, Map<String, String> localHolidayMap, Map<String, String> chineseHolidayMap, Map<String, Integer> dateTypeMap) generates a calendar dari tahun dan bulan yang ditentukan, termasuk kalender bulan dan semua informasi liburan, dan dapat menyesuaikan liburan dan hari kerja, dll.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: calendarutiltest.
Termasuk:
(1) Perhitungan Tanggal Lunar, Tahun, Bulan dan Hari.
(2) Hitung tanda zodiak selama kalender bulan.
(3) Perhitungan dua puluh empat istilah matahari, dll. (4) Catatan tentang Kalender Lunar ke Kalender Gregorian: Hanya Kalender Kalender Lunar dalam Kalender Gregorian 1900-2100 yang didukung.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: Lunardatetest.
Termasuk:
(1) Hitung liburan Gregorian, getLocalHoliday* misalnya, getLocalHoliday (tanggal tanggal) menghitung liburan Gregorian tanggal, getLocalHoliday (tanggal tanggal, peta <string, string> localholidaymap) dapat lulus dalam data liburan kustom Gregorian.
(2) Perhitungan liburan bulan, getchinesholiday* misalnya, getchinesholiday (tanggal tanggal) menghitung liburan bulan, getchinesholiday (tanggal tanggal, peta <string, string> cinaholidaymap) dapat meneruskan data liburan bulan kustom.
(3) Perhitungan dua puluh empat istilah matahari, getSolarTerm* misalnya, getSolarTerm (tanggal) menghitung dua puluh empat istilah tanggal matahari.
Catatan: Lunardate digunakan dalam kalender lunar dan dua puluh empat istilah matahari, dan hanya mendukung perhitungan tahun 1900-2100 tahun kalender Gregorian.
Anda dapat melihat kode uji yang relevan untuk penggunaan rinci.
Ekspresi cron dari kiri ke kanan (dipisahkan oleh spasi): detik (0-59) menit (0-59) jam (0-23) Tanggal (1-31) bulan (bilangan bulat tahun 1-12 atau Jan-Des) (bilangan bulat 1-7 atau sun-sat (1 = matahari)) tahun (opsional, 1970-2099)
Karakter khusus dapat digunakan untuk semua bidang:, - * / adalah enumerasi, jangkauan, arbitrer, tanggal interval, dan lainnya:? LW adalah hari kerja yang terakhir, yang valid (Senin hingga Jumat)
Anda juga dapat menggunakan minggu ini:? L # adalah apa pun, dan akhirnya, ekspresi cron biasanya digunakan dalam minggu setiap bulan:
(1) 0 0 2 1 *? * Menunjukkan pemicu pada jam 2 pagi pada tanggal 1 bulan ini (2) 0 15 10? * Mon-Frri menunjukkan bahwa penugasan dilakukan pada pukul 10:15 pada hari Senin hingga Jumat (3) 0 15 10? * 6L 2002-2006 menunjukkan bahwa penugasan dilakukan pada pukul 10:15 pagi pada hari Jumat terakhir setiap bulan dari 2002-2006 (4) 0 0/30 9-17 * *? Menunjukkan setiap setengah jam (5) 0 15 10 l *? Menunjukkan pemicu pada pukul 10:15 pagi pada hari terakhir setiap bulan (6) 0 15 10? * 6#3 menunjukkan pemicu pada pukul 10:15 pagi pada hari Jumat ketiga setiap bulan (6) 0 15 10? * 6#3 menunjukkan pemicu pada pukul 10:15 pagi pada hari Jumat ketiga setiap bulan (4) 0 0/30 9-17 * *? Menunjukkan setiap setengah jam (5) 0 15 10 l *? Menunjukkan pemicu pada pukul 10:15 pagi pada hari terakhir setiap bulan (6) 0 15 10? * 6#3 menunjukkan pemicu pada pukul 10:15 pagi pada hari Jumat ketiga setiap bulan (6) 0 15 10? * 6#3 menunjukkan pemicu pada pukul 10:15 pagi pada hari Jumat ketiga setiap bulan (6) 0 15 10? *
Berisi (1) validasi dan pemformatan metode ekspresi cron, isvalidexpression dan formatExpression.
(2) Hasilkan metode waktu eksekusi berikutnya atau lebih, GetNextTime dan GetNextTimeList.
(3) Hasilkan metode pemformatan tanggal (yyyy-mm-dd hh: mm: ss) metode dari waktu eksekusi berikutnya, getNextTimestr dan getNextTimeStrList.
(4) Bandingkan apakah waktu eksekusi berikutnya dari ekspresi cron sama dengan metode tanggal yang ditentukan, issatisfiedby.
Catatan: Lapisan yang mendasarinya menggunakan pemrosesan cronexpression Quartz.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: cronexpressionutiltest.
Komputasi alat yang memakan waktu, mendukung detik, milidetik, nanoseconds
termasuk:
(1) Perhitungan membutuhkan waktu dan mengembalikan hasil yang memakan waktu.
(2) Perhitungan membutuhkan waktu, menyesuaikan nama tugas, dan hasil yang memakan waktu.
(3) Waktu perhitungan, pengembalian waktu yang akurat, dengan 3 desimal, gunakan round_down untuk membuang bagian desimal yang melebihi 3 digit, dll.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: CostuitlTest.
Termasuk fungsi:
(1) Menganalisis bahasa alami waktu berdasarkan waktu saat ini.
(2) Menganalisis bahasa alami waktu berdasarkan waktu yang ditentukan.
(3) Tambahkan berbagai metode panggilan, seperti eksekusi bersamaan parseconcurrent, yang dapat menetapkan waktu batas waktu dan kumpulan utas khusus untuk meningkatkan efisiensi eksekusi.
Dimodifikasi dari https://github.com/shinyke/time-nlp
Beberapa modifikasi telah dilakukan sebagai berikut:
(1) merangkum atribut dan mengganti nama mereka untuk mematuhi standar penamaan unta.
(2) Ubah file sumber daya reguler yang memuat ke loading singleton.
(3) Mengacu kembali kelas-kelas ke dalam kelas-kelas terpisah sesuai dengan fungsinya.
(4) Tulis ulang menggunakan Java 8 Date API.
(5) Tambahkan komentar dan optimalkan kode.
(6) Perbaiki masalah dalam proyek asli: waktu standar yyyy-mm-dd, yyyy-mm-dd hh: mm: ss dan yyyy-mm-dd hh: masalah analisis mm.
(7) Perbaiki masalah dalam proyek asli: 1 jam, 1 dan setengah jam, 1 jam dan 50 menit dan masalah analisis lainnya; dan mendukungnya untuk detik, seperti 50 detik, 10 menit dan 30 detik.
(8) Perbaiki masalah dalam proyek asli: Waktu saat ini untuk perbaikan adalah 10 pagi, jadi tiga pm akan diidentifikasi sebagai masalah tiga sore besok.
(9) Memperbaiki masalah dalam proyek asli: Perbaiki masalah pengecualian resolusi desimal.
(10) Optimalisasi kinerja, memperkirakan keteraturan yang digunakan dan memasukkannya ke dalam cache, dan menggunakannya langsung waktu berikutnya untuk meningkatkan kinerja.
Catatan: NLP akan memiliki tingkat kegagalan pengakuan tertentu, dan itu akan terus mengulangi dan meningkatkan tingkat keberhasilan.
Fitur ini tidak termasuk dalam versi mini.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: TimeNlputiltest.
Konstanta unit waktu, yang memfasilitasi perhitungan konversi unit, seperti mengatur waktu cache selama 3 hari: 3*milliseconds_per_day (24*60*60*1000 milidetik per hari)
Termasuk:
(1) Konversi nilai unit dasar, seperti Milliseconds_per_seconds 1000 milidetik per detik.
(2) Konversi ke nilai dasar detik, seperti detik_per_day jumlah detik per hari adalah 24*60*60.
(3) Konversi ke nilai dasar milidetik, seperti Milliseconds_per_day. Jumlah milidetik per hari adalah 24*60*60*1000.
Untuk penggunaan terperinci, Anda dapat melihat kode uji yang relevan: XKTimeConstantTest.
(1) Proyek garpu.
(2) Modifikasi di cabang dev.
(3) Kirim permintaan tarik.
(1) Liburan biasa, seperti Hari Tahun Baru, Festival Musim Semi, Festival Qingming, Hari Buruh, Festival Perahu Naga, Festival Pertengahan Musim Gaya dan Liburan lainnya.
(2) didukung oleh 24 istilah matahari.