ホームページ  >  記事  >  バックエンド開発  >  実はPythonでも旧暦を計算できるんです!

実はPythonでも旧暦を計算できるんです!

PHPz
PHPz転載
2023-04-30 09:43:061102ブラウズ

実はPythonでも旧暦を計算できるんです!

最近、仕事で旧暦を変換するという問題に遭遇しました。

実はPythonでも旧暦を計算できるんです!

太陰暦は、我が国の現在の伝統的な暦です。月の満ち欠けの周期を基本とし、太陽帰暦を1年として、月の満ち欠けを1ヶ月とし、二十四節気を加え、閏月を設けて平均した暦です。年と熱帯年は適応します [1] 。

データを処理するために、太陰暦とグレゴリオ暦の変換関係を詳しく調べる必要はありません。 Python では、ZhDate ライブラリは、太陰暦とグレゴリオ暦の変換、日付の加算と減算、および完全な中国の日付の生成をサポートしています。1900 年から 2100 年までの組み込みの太陰暦データがあり、Python の組み込みモジュールのみに依存します。 github.com/CutePandaSh/zhdate

ZhDate は Python のサードパーティ オープン ソース モジュールであるため、使用する前に追加のインストールとインポートが必要です。コマンド ライン ウィンドウに次のコマンドを直接入力します。

pip install zhdate

詳細な使用法

zhdate ライブラリ。ネットワーク インターフェイスを使用せずにローカルで中国の旧暦を直接計算し、旧暦から旧暦への変換をサポートします。太陽暦 [2]。

太陽暦と太陰暦の日付間の変換

対話型環境で次のコマンドを入力します:

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

出力:

农历2022年2月2日

対話型環境で入力します。次のコマンド:

t_date1 = date1.to_datetime()
t_date1

出力:

datetime.datetime(2022, 3, 4, 0, 0)

対話型環境で次のコマンドを入力します:

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

出力:

<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>

閏月

対話型環境で次のコマンドを入力します:

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

出力:

2020-05-07 00:00:00

実はPythonでも旧暦を計算できるんです!

##対話型環境で次のコマンドを入力します:

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

出力:

2020-06-06 00:00:00

今年の旧暦の 4 月 15 日にあたる学生は、それぞれ 5 月 7 日と 6 月 6 日に 2 つの旧暦の誕生日を持つことができます。

その他

中国語の出力。対話型環境で次のコマンドを入力します。

dt_date4 = datetime(2022, 3, 4)
date4 = ZhDate.from_datetime(dt_date4)
print(date4.chinese())

出力:

二零二二年二月初二 壬寅年 (虎年)

その日の太陰暦の日付。対話型環境 次のコマンドを次の場所に入力します。

ZhDate.today()

出力:

农历2022年2月7日

さらに、zhdate モジュールは加算と減算もサポートします。 2 つの zhdate オブジェクトを減算すると、2 つの太陰暦の日付の差が得られ、整数を加算すると、その日数だけ離れた新しい太陰暦オブジェクトを返すこともできます。

実はPythonでも旧暦を計算できるんです!

実践的な戦闘: 休日間の日数を計算する

実践的なプロジェクトを通じて、この zhdate モジュールを練習してみましょう。

参加してください 今日の特定の休日まであと何日残っているかをすぐに知りたいですか? zhdate ライブラリと datetime ライブラリを使用すると、この問題を解決できます。

実はPythonでも旧暦を計算できるんです!

対話型環境で次のコマンドを入力します:

today = datetime.now()
data_str = today.strftime('%Y-%m-%d')
data_str

出力:

'2022-03-09'

労働者の日までの日数を計算します。インタラクティブ環境で次のコマンドを入力します。

oneDay = datetime(2022, 5, 1)
difference = oneDay.toordinal()-today.toordinal()
print(f'今天 {data_str} 距离五一劳动节还有 {difference} 天')

出力:

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

実はPythonでも旧暦を計算できるんです!

中秋節までの日数を計算するには、次のコマンドを入力します。インタラクティブ環境で次のコマンドを実行します:

oneDay = ZhDate(2022, 8, 15).to_datetime()
difference = oneDay.toordinal()-today.toordinal()
print(f'今天 {data_str} 距离中秋节还有 {difference} 天')

出力:

今天 2022-03-09 距离中秋节还有 185 天

時間があれば、他のフェスティバルまであと何日残っているかをテストしてみてください。実戦では、祭りが新暦と旧暦のどちらで設定されているかに注意する必要があります。

以上が実はPythonでも旧暦を計算できるんです!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。