Python sebenarnya boleh mengira kalendar lunar!

PHPz
Lepaskan: 2023-04-30 09:43:06
ke hadapan
1100 orang telah melayarinya

Python sebenarnya boleh mengira kalendar lunar!

Baru-baru ini saya menghadapi masalah menukar kalendar lunar apabila menangani tugasan kerja.

Python sebenarnya boleh mengira kalendar lunar!

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
Salin selepas log masuk

Butiran cara menggunakan pustaka

zhdate, terus mengira kalendar lunar Cina secara tempatan tanpa antara muka rangkaian, dan menyokong penukaran antara kalendar lunar dan kalendar suria [2].

Penukaran antara kalendar suria dan tarikh kalendar lunar

Masukkan arahan berikut dalam persekitaran interaktif:

from zhdate import ZhDate
date1 = ZhDate(2022, 2, 2)# 新建农历 2022年二月初二(龙抬头)的日期对象
print(date1)# 直接返回农历日期字符串d
Salin selepas log masuk

Output:

农历2022年2月2日
Salin selepas log masuk

Masuk dalam persekitaran interaktif Perintah berikut:

t_date1 = date1.to_datetime()
t_date1
Salin selepas log masuk

Output:

datetime.datetime(2022, 3, 4, 0, 0)
Salin selepas log masuk

Masukkan arahan berikut dalam persekitaran interaktif:

from datetime import datetime
dt_date2 = datetime(2022, 2, 6)
date2 = ZhDate.from_datetime(dt_date2)# 从阳历日期转换成农历日期对象
date2
Salin selepas log masuk

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>
Salin selepas log masuk

Bulan lompat

Masukkan arahan berikut dalam persekitaran interaktif:

date3 = ZhDate(2020, 4, 15)# 新建农历 2020年4月15日
print(date3.to_datetime())
Salin selepas log masuk

Output:

2020-05-07 00:00:00
Salin selepas log masuk

Python sebenarnya boleh mengira kalendar lunar!

Masukkan arahan berikut dalam persekitaran interaktif:

date3 = ZhDate(2020, 4, 15)# 新建农历 2020年闰4月15日
print(date3.to_datetime())
Salin selepas log masuk

Output:

2020-06-06 00:00:00
Salin selepas log masuk

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.

Lain

Output Cina, masukkan arahan berikut dalam persekitaran interaktif:

dt_date4 = datetime(2022, 3, 4)
date4 = ZhDate.from_datetime(dt_date4)
print(date4.chinese())
Salin selepas log masuk

Output:

二零二二年二月初二 壬寅年 (虎年)
Salin selepas log masuk

Tarikh lunar hari itu, dalam persekitaran interaktif Masukkan arahan berikut dalam:

ZhDate.today()
Salin selepas log masuk

Output:

农历2022年2月7日
Salin selepas log masuk

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.

Python sebenarnya boleh mengira kalendar lunar!

Pertempuran praktikal: Kira bilangan hari daripada perayaan

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.

Python sebenarnya boleh mengira kalendar lunar!

Masukkan arahan berikut dalam persekitaran interaktif:

today = datetime.now()
data_str = today.strftime('%Y-%m-%d')
data_str
Salin selepas log masuk

Output:

'2022-03-09'
Salin selepas log masuk

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} 天')
Salin selepas log masuk

Output:

今天 2022-03-09 距离五一劳动节还有 53 天
Salin selepas log masuk

Python sebenarnya boleh mengira kalendar lunar!

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} 天')
Salin selepas log masuk

Output:

今天 2022-03-09 距离中秋节还有 185 天
Salin selepas log masuk

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!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!