Heim > Artikel > Backend-Entwicklung > Python kann tatsächlich den Mondkalender berechnen!
Kürzlich bin ich bei der Bearbeitung von Arbeitsaufgaben auf das Problem gestoßen, den Mondkalender umzustellen.
Der Mondkalender ist der aktuelle traditionelle Kalender unseres Landes. Es basiert auf dem sich ändernden Zyklus der Mondphase, wobei die Länge des Sonnenjahres als ein Jahr angegeben wird, und fügt vierundzwanzig Sonnenperioden hinzu und legt Schaltmonate fest, um den durchschnittlichen Kalender zu erstellen Jahr und tropisches Jahr passen sich an [1] .
Damit wir Daten verarbeiten können, müssen wir die Umrechnungsbeziehung zwischen dem Mondkalender und dem Gregorianischen Kalender nicht im Detail untersuchen. In Python unterstützt die ZhDate-Bibliothek die Konvertierung des Mondkalenders in den Gregorianischen Kalender, die Datumsaddition und -subtraktion sowie die vollständige chinesische Datumsgenerierung. Sie verfügt über integrierte Mondkalenderdaten von 1900 bis 2100 und basiert nur auf integrierten Python-Modulen. github.com/CutePandaSh/zhdate
Da ZhDate ein Open-Source-Modul von Python eines Drittanbieters ist, erfordert es eine zusätzliche Installation und einen zusätzlichen Import, bevor es verwendet werden kann. Geben Sie den folgenden Befehl direkt in das Befehlszeilenfenster ein:
pip install zhdate
zhdate-Bibliothek, berechnet den chinesischen Mondkalender direkt lokal ohne Netzwerkschnittstelle und unterstützt die Konvertierung zwischen dem Mondkalender und dem Sonnenkalender [2].
Geben Sie den folgenden Befehl in die interaktive Umgebung ein:
from zhdate import ZhDate date1 = ZhDate(2022, 2, 2)# 新建农历 2022年二月初二(龙抬头)的日期对象 print(date1)# 直接返回农历日期字符串d
Ausgabe:
农历2022年2月2日
Geben Sie den folgenden Befehl in die interaktive Umgebung ein:
t_date1 = date1.to_datetime() t_date1
Ausgabe:
datetime.datetime(2022, 3, 4, 0, 0)
In die interaktive Umgebung Geben Sie den folgenden Befehl ein:
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>
Geben Sie den folgenden Befehl in die interaktive Umgebung ein:
date3 = ZhDate(2020, 4, 15)# 新建农历 2020年4月15日 print(date3.to_datetime())
Ausgabe:
2020-05-07 00:00:00
Geben Sie den folgenden Befehl in die interaktive Umgebung ein:
date3 = ZhDate(2020, 4, 15)# 新建农历 2020年闰4月15日 print(date3.to_datetime())
Ausgabe :
2020-06-06 00:00:00
Schüler, die dieses Jahr im Mondkalender auf den 15. April fallen, können am 7. Mai bzw. 6. Juni zwei Mondgeburtstage haben.
Chinesische Ausgabe, geben Sie den folgenden Befehl in die interaktive Umgebung ein:
dt_date4 = datetime(2022, 3, 4) date4 = ZhDate.from_datetime(dt_date4) print(date4.chinese())
Ausgabe:
二零二二年二月初二 壬寅年 (虎年)
Das Monddatum des Tages, geben Sie den folgenden Befehl in die interaktive Umgebung ein:
ZhDate.today()
Ausgabe:
农历2022年2月7日
In Addition, zhdate Das Modul unterstützt auch Addition und Subtraktion. Durch Subtrahieren zweier zhdate-Objekte kann die Differenz zwischen den beiden Mondkalenderdaten ermittelt werden, und durch Hinzufügen einer Ganzzahl kann auch ein neues Mondkalenderobjekt zurückgegeben werden, das die Anzahl der Tage auseinander gibt.
Lassen Sie uns dieses zhdate-Modul anhand eines praktischen Projekts üben.
Machen Sie mit. Möchten Sie schnell herausfinden, wie viele Tage heute noch bis zu einem bestimmten Feiertag verbleiben? Sie können die Bibliotheken zhdate und datetime verwenden, um dieses Problem zu lösen.
Geben Sie den folgenden Befehl in die interaktive Umgebung ein:
today = datetime.now() data_str = today.strftime('%Y-%m-%d') data_str
Ausgabe:
'2022-03-09'
Berechnen Sie die Anzahl der Tage bis zum Labor Day und geben Sie den folgenden Befehl in die interaktive Umgebung ein:
oneDay = datetime(2022, 5, 1) difference = oneDay.toordinal()-today.toordinal() print(f'今天 {data_str} 距离五一劳动节还有 {difference} 天')
Ausgabe:
今天 2022-03-09 距离五一劳动节还有 53 天
Berechnen Um die Anzahl der Tage bis zum Mittherbstfest zu ermitteln, geben Sie in der interaktiven Umgebung den folgenden Befehl ein:
oneDay = ZhDate(2022, 8, 15).to_datetime() difference = oneDay.toordinal()-today.toordinal() print(f'今天 {data_str} 距离中秋节还有 {difference} 天')
Ausgabe:
今天 2022-03-09 距离中秋节还有 185 天
Wenn Sie Zeit haben, können Sie es ausprobieren und testen, wie viele Tage bis dahin verbleiben andere Feste? Im tatsächlichen Kampf sollte man darauf achten, ob das Fest nach dem gregorianischen Kalender oder dem Mondkalender stattfindet.
Das obige ist der detaillierte Inhalt vonPython kann tatsächlich den Mondkalender berechnen!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!