複数のカレンダー (主に標準の「先発グレゴリオ暦」と「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でカスタムカレンダーを定義/使用した経験がある人はいますか?