hoomin.kani

KANISAN WEB

インフラ・サーバーサイドを頑張るカニが学んだあれこれ。

【Elixir】DateTime.compareで時間を比較する

f:id:hoominkani:20190818173951j:plain

Elixirで時間の比較をしたい!と思ったら、真っ先に思い浮かぶのがDateTime.compareですよね。

今回はDateTime.compareの使い方をサクッと紹介します。

DateTime.compareの使い方

  • 使い方

    • Datetime AとDatetime Bを比較する場合
DateTime.compare(A, B)

たったこれだけです。

iex(1)> DateTime.compare(DateTime.utc_now, DateTime.utc_now)
:lt

3種類の返り値

DateTime.compareを実行すると、3種類のatomのうち、いずれかの値が返ってきます。

  • :lt AがBより早い
  • :eq AとBが等しい
  • :gt AがBより遅い

例えばDatetime AがDatetime Bよりも早い場合に特定の処理を行いたい場合、

if DateTime.compare(a, b) == :lt do
 do_something()
end

などと書くことができます。