Rumah > Artikel > pembangunan bahagian belakang > Python sebenarnya boleh mengira kalendar lunar!
Baru-baru ini saya menghadapi masalah menukar kalendar lunar apabila menangani tugasan kerja.
Kalendar lunar ialah kalendar tradisional semasa di negara saya. Ia berdasarkan kitaran perubahan fasa bulan Setiap fasa lunar berubah kepada satu bulan, dengan merujuk kepada tahun pulangan suria sebagai panjang satu tahun, dan menambah dua puluh empat istilah suria dan menetapkan bulan lompat untuk membuat kalendar purata. tahun dan tahun tropika menyesuaikan diri [1] .
Untuk kami memproses data, kami tidak perlu mengkaji hubungan penukaran antara kalendar lunar dan kalendar Gregorian secara terperinci. Dalam Python, pustaka ZhDate menyokong penukaran kalendar lunar-Gregorian, penambahan dan penolakan tarikh, dan penjanaan tarikh Cina penuh Ia mempunyai data kalendar lunar terbina dalam dari 1900 hingga 2100 dan hanya bergantung pada modul terbina dalam Python. github.com/CutePandaSh/zhdate
Memandangkan ZhDate ialah modul sumber terbuka pihak ketiga Python, ia memerlukan pemasangan dan import tambahan sebelum ia boleh digunakan. Masukkan terus arahan berikut dalam tetingkap baris arahan:
pip install zhdate
zhdate, terus mengira kalendar lunar Cina secara tempatan tanpa antara muka rangkaian, dan menyokong penukaran antara kalendar lunar dan kalendar suria [2].
Masukkan arahan berikut dalam persekitaran interaktif:
from zhdate import ZhDate date1 = ZhDate(2022, 2, 2)# 新建农历 2022年二月初二(龙抬头)的日期对象 print(date1)# 直接返回农历日期字符串d
Output:
农历2022年2月2日
Masuk dalam persekitaran interaktif Perintah berikut:
t_date1 = date1.to_datetime() t_date1
Output:
datetime.datetime(2022, 3, 4, 0, 0)
Masukkan arahan berikut dalam persekitaran interaktif:
from datetime import datetime dt_date2 = datetime(2022, 2, 6) date2 = ZhDate.from_datetime(dt_date2)# 从阳历日期转换成农历日期对象 date2
Output:
<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">农历2022年1月6日</span><br>
Masukkan arahan berikut dalam persekitaran interaktif:
date3 = ZhDate(2020, 4, 15)# 新建农历 2020年4月15日 print(date3.to_datetime())
Output:
2020-05-07 00:00:00
Masukkan arahan berikut dalam persekitaran interaktif:
date3 = ZhDate(2020, 4, 15)# 新建农历 2020年闰4月15日 print(date3.to_datetime())
Output:
2020-06-06 00:00:00
Pelajar yang jatuh pada 15 April dalam kalendar lunar tahun ini boleh mempunyai dua hari lahir lunar pada 7 Mei dan 6 Jun masing-masing.
Output Cina, masukkan arahan berikut dalam persekitaran interaktif:
dt_date4 = datetime(2022, 3, 4) date4 = ZhDate.from_datetime(dt_date4) print(date4.chinese())
Output:
二零二二年二月初二 壬寅年 (虎年)
Tarikh lunar hari itu, dalam persekitaran interaktif Masukkan arahan berikut dalam:
ZhDate.today()
Output:
农历2022年2月7日
Selain itu, modul zhdate juga menyokong penambahan dan penolakan. Menolak dua objek zhdate boleh mendapatkan perbezaan antara dua tarikh kalendar lunar, dan menambah integer juga boleh mengembalikan objek kalendar lunar baharu dengan selang bilangan hari.
Mari kita praktikkan modul zhdate ini melalui projek praktikal.
Sertai kami Ingin mengetahui dengan cepat berapa hari lagi untuk cuti tertentu hari ini? Anda boleh menggunakan perpustakaan zhdate dan datetime untuk menyelesaikan masalah ini.
Masukkan arahan berikut dalam persekitaran interaktif:
today = datetime.now() data_str = today.strftime('%Y-%m-%d') data_str
Output:
'2022-03-09'
Kira bilangan hari sehingga Hari Pekerja, dalam interaktif Masukkan arahan berikut dalam persekitaran:
oneDay = datetime(2022, 5, 1) difference = oneDay.toordinal()-today.toordinal() print(f'今天 {data_str} 距离五一劳动节还有 {difference} 天')
Output:
今天 2022-03-09 距离五一劳动节还有 53 天
Untuk mengira bilangan hari sehingga Pesta Pertengahan Musim Luruh, masukkan arahan berikut dalam persekitaran interaktif:
oneDay = ZhDate(2022, 8, 15).to_datetime() difference = oneDay.toordinal()-today.toordinal() print(f'今天 {data_str} 距离中秋节还有 {difference} 天')
Output:
今天 2022-03-09 距离中秋节还有 185 天
Jika anda mempunyai masa, anda boleh mencubanya dan menguji berapa hari lagi sehingga perayaan lain? Dalam pertempuran sebenar, anda harus memberi perhatian sama ada perayaan itu ditetapkan mengikut kalendar Gregorian atau kalendar lunar.
Atas ialah kandungan terperinci Python sebenarnya boleh mengira kalendar lunar!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!