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が溜まってるのも気になる