万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Pythonで月の計算

    1ヶ月後の日付を取りたい

    datetime.datetime(2008, 12, 1) + datetime.timedelta(months=1)

    これだとエラーになる。 daysはあるのに、monthsというパラメータが取れないからだ。

    [Python] 月の加減算処理ができない? | それなりブログ

    これを見た。

    Pythonでの日付関連処理 | 情シスハック

    from dateutil.relativedelta import relativedelta

    これを使えばできるようだが、インストールが必要なのか出来ないこともある。

    endo blog: Pythonで時間関連の関数の勉強(datetime) これを見ると、1ヶ月前の計算だが、

    i = today - datetime.timedelta(days=30)

    と単純に30日で引いてる・・・。 これだと、2/28の1ヶ月前に1月28日になるのか、1月31日になるのかわからないのでは?

    # 3月29日を作り、
    march = datetime.datetime(2011,3,30)
    # 30日前?
    march - datetime.timedelta(days=30)

    結果は、月末の2月28日ではなく27日

    datetime.datetime(2011, 2, 27, 0, 0)

    では、逆に1か月後

    # 2月28日を作り、
    feb = datetime.datetime(2011,2,28)
    # 30日後?
    feb + datetime.timedelta(days=30)

    結果は、

    datetime.datetime(2011, 3, 30, 0, 0)

    普通に30日足してるだけか・・・。 3月1日だと4月1日ではなく3月31日になるし・・・。却下!