2

複数のカレンダー (主に標準の「先発グレゴリオ暦」と「365 日」(閏なし) カレンダー) を処理できるようにする必要があるプログラムを作成しています。Python のdatetimeモジュールはそのままでグレゴリオ暦を処理しますが、他のカレンダーも処理できるようにしたいと考えています。

簡単な例:

from datetime import datetime
import calendar

def example(year):
    delta = datetime(year, 3, 1) - datetime(year, 2, 28)
    print '%i is a leap year: %s' % (year, calendar.isleap(year))
    print 'Days between 2-28 and 3-1: %s' % delta.days

example(2012)
2012 is a leap year: True
Days between 2-28 and 3-1: 2
example(2013)
2013 is a leap year: False
Days between 2-28 and 3-1: 1

これは確かにモジュールの意図した操作ですが、私の特定のニーズには対応していません。カレンダーを「noleap」に設定し、datetime と timedelta の機能を保持できるようにしたいと考えています。

datetimeでカスタムカレンダーを定義/使用した経験がある人はいますか?

4

1 に答える 1

1

日付時刻をある暦体系から別の暦体系に変換できる関数を作成した場合は、まずすべての入力を標準のグレゴリオ暦に変換し、必要な数学または演算を実行してから、結果を別の暦体系に変換して戻すことができます。 . 変換関数が正しく機能すると仮定すると、これは作業量が最も少なく、エラーが発生しにくい可能性があります。

更新:これを行うために使用できるように見えるpypiという名前のモジュールを発見しました。julian

于 2013-07-30T01:18:29.533 に答える