読者です 読者をやめる 読者になる 読者になる

じっぱひとからげ

十把一絡げになんでもかんでもつづる。

Dateクラス同士で時刻に関係なく年月日が一致するかどうかの判定

Dateクラスの日付だけ一致しているかどうか判定したくなったとき、いい感じにつかえるメソッドはないのか。

■Dateクラスでの比較のために用意されているのは以下のメソッド

Date (Java Platform SE 6)

メソッドの概要
 boolean after(Date when) 
          この日付が、指定された日付より後にあるかどうかを判定します。
 boolean before(Date when) 
          この日付が、指定された日付より前にあるかどうかを判定します。
 int compareTo(Date anotherDate) 
          順序付けのために 2 つの Date を比較します。
 boolean equals(Object obj) 
          2 つの日付が等しいかどうかを比較します。

なんだこれでいけるじゃん。と安易に使ってみると実は「日付」の中には時刻も含まれているので、Today today = new Today();と比較すると時刻まで考慮した結果が得られてしまう。

仕方がないのでダサいけれど、today.getYear(), today.getMonth(), today.getDate()と比較することに。とりあえずやりたいことはできたからいいか。とりあえずハマったことを記録。

と、書いてからtodayの時刻を00:00:00とか23:59:59に倒せばいいだけなことに気づいてしまった。普段プログラム書くことなんかないからこういうセンスなさ過ぎ。