2018-03-03 到達点メモ
日付の処理は下のライブラリを使うのが楽そう(*本格的に使う前の感想)
KotlinMoment
参考サイト:KotlinMomentを使ってkotlinで日付を楽して扱う
というかデフォルトのメソッドに素直に加算する処理と代入する処理を入れてほしいのだが……
上記のライブラリを使うにあたって
日付操作の際に一つ気を付ける点がありまして
var moment = Moment() //2017-11-20-20-30だと仮定する
moment.add(1,TimeUnit.DAYS)
view.text = moment.date.toString
この場合、本来ならば2017-11-21-20-30と出てほしい所を
2017-11-20-20-30と出てしまう。
で、調べてみたところ、どうもaddは本来の変数自体はいじらないようなので
中身自体を更新したい場合は以下のようにする必要がある
moment = moment.add(1,TimeUnit.DAYS)
条件があっているはずなのに、どうやってもうまくいかないので
条件の内容のデータをToastで出力して値を確認したら
今日の日付はそのままなのに分解して再度Date型のデータにまとめたとき
纏めたデータがひと月分進んでいた。
調べたところ、今回使ったライブラリのMoment型は
monthで出力する場合、1~12になり、Date型のmonthは
0~11のようなのである。
今回ずれた原因がそれだった。初めてライブラリに苦しめられた気がする
あと、Dateクラスの比較が分かりにくくてつらかった
正直今も良くわかってない。
ただ比較をするときは
DateA.compareTo(DateB)>0
DateA.compareTo(DateC)<0
とかでやったほうが良いという事だけはわかった。
参考サイト:【Java入門】Dateクラスで日付の比較(compare)まとめ
一先ず、形にはなったが問題が続出して心が折れたので
今日はここまで
0 コメント:
コメントを投稿