joda-timeを仕方なく使う(時間で四則演算したい)
はじめに
Scalaで使える日時を扱うライブラリの1つにorg.scala_tools.timeがあるが、これjoda-timeの薄いラッパーで、ドキュメントもマトモにないので、結局joda-time調べた方が早いという話があったりする。
で、時刻の差を取得したいときに少しハマったのでメモ
時刻の差を取得する
これって
datetime1 - datetime2
とかで計算したくなるんだが無理くさい。
どうすればいいかというと、
new Period(datetime1, datetime2)
とかやる必要があるらしい。(xuweiさんに指摘されて修正しました!Thanks!)イケテナイ臭漂う。
時間を割り算する
とある時間(Period)が別の時間(Period)の何倍になってるか、とか計算したい。つまり割り算をしたい。
色々調べてみたが、結局一旦ミリ秒に変換すればいいんじゃね、とかいう残念な結論にー
new Interval(DateTime.now, DateTime.now + 70.minute).millis/30.minute.millis // 2L
(Intervalは始点と終点を保持する型なので、どちらかというとやりたい事的には以下の方が適切)
new Duration(DateTime.now, DateTime.now + 70.minute).millis/30.minute.millis // 2L
うわぁなんかしょぼい…。
よだん
joda-time使うのやめようかな…。別に良いライブラリあるんだろうか。(なんかpull-requestが溜まってるのも気になる