[Python] 月の加減算処理ができない?
2008年12月15日
datetimeやdateオブジェクトに
月を加算/減算する処理が見当たらない。
月を加算/減算する処理が見当たらない。
マニュアルを読んでもわからなかったので、あてずっぽうで書いてみると・・・(2.5.2)
datetime.datetime(2008, 12, 1) + datetime.timedelta(months=1) # -> monthsという指定方法は無いのでエラー
datetime.datetime(2008, 13, 1) # -> 範囲外でエラー
で☆す☆よ☆ねー!!!
ググったら、こういう記事を発見したので、自分も諦めて終了。
誰が教えてくだちい。
【追記、上だけだとなんなんで】
本当にただのスクリプトだけど、自分でやった対処
本当にただのスクリプトだけど、自分でやった対処
def calculate_month_delta(year, month, delta): """年月に月を加減算した結果を返す >>> calculate_month_delta(2008, 1, 1) (2008, 2) >>> calculate_month_delta(2008, 1, 12) (2009, 1) >>> calculate_month_delta(2008, 6, 25) (2010, 7) >>> calculate_month_delta(2008, 1, -1) (2007, 12) >>> calculate_month_delta(2008, 1, -37) (2004, 12) """ month += delta while 1: if month < 1: year -= 1 month += 12 continue elif month > 12: year += 1 month -= 12 continue break return year, month
【追記 – 結論】
kishirさんよりご教授いただいた
kishirさんよりご教授いただいた
>>> import time, datetime >>> datetime.datetime.fromtimestamp(time.mktime((2008, 13, 1, 0, 0, 0, 0, 0, 0))) datetime.datetime(2009, 1, 1, 0, 0) >>> datetime.datetime.fromtimestamp(time.mktime((2008, -1, 1, 0, 0, 0, 0, 0, 0))) datetime.datetime(2007, 11, 1, 0, 0)
イヤッッホォォォウ!