時刻の差分を計算したい

8月 6th, 2016

前回ログイン時間から今回ログインまでの差を出したい、ということで…

pythonは結構日付計算機能が充実している。ただね・・・今、私が欲しいのは、◯日先とか、一年前とか、そういう計算じゃないんだなあ。これだけ充実しているのだから、単純に秒数差を出すとか、そういうのもできるようになっているはず、ということで探し回って見つけた。

まず、とりあえず「今現在の時刻」取得の方法

import datetime
mae=datetime.datetime.today()

これだけ。printで表示してみると中身が分かる。

print(d)

こうすると、結果は・・・

2016-08-06 14:40:09.695296

表示結果をフォーマットすれば普通に年とか日とか見やすく表示もできる。ま、それはさておき。

少ししてから、次の時間を取得してみた。

ato=datetime.datetime.today()

少し後の「現在時刻」が取得できる。さて、ここでpythonすごいな、と思うのは・・・

sa=ato-mae

・・・ができてしまうってこと。そのままちゃんと計算してくれる。でもこれってどこまで考慮して計算しているのかな・・・閏年やらいろいろとカレンダー日付は不規則な部分があるからなぁ。日付の加算・減算は、timedeltaを使うのだそうな。今私には必要ないので、とりあえずパス(こらこら)。

ただね、これじゃ、前回ログインから今回ログインまでにどれだけ空いたかの計算はちとやりにくい。差が◯×以上あったら・・・とかそういう分岐がしたいわけで。

で、ここでどうするかっていうと・・・

byousa=(ato-mae).total_seconds()

これでめでたく秒差が出る。ぱちぱちぱち。

たとえば、
maeが2016-08-06 14:40:09.695296
atoが2016-08-06 14:58:31.421060
の場合、
byousa=1101.725764

と出る。

とここまで書いてふと思った。やっぱり元の年月日時秒の方がいいのかなぁ・・・?いや、でも差分の量によって条件分岐をしようと思ったら秒数の方が扱いやすいよね、きっと。

関連記事

  1. 日差と秒差はあるのに分差がない不思議
  2. 正規表現とどっちが早い?
  3. 正規表現コンパイルする?しない?
  4. Python的漬け物・・・?pickleで散々

Comments are closed.