プロが教える店舗&オフィスのセキュリティ対策術

javaでの日付の大小比較について分からない事があります。
(1)例:2002/04/01と本日の日付(例:2002/06/03)の大小関係を調べるにはどうす ればよろしいのでしょうか?


何か分かる事がありましたら、ご教授お願い致します。

A 回答 (4件)

java.util.Dateの


after()
before()
メソッドではいけませんか?

この回答への補足

早い回答ありがとうございます。

このafter()メソッドなのですが、
---------------------------------------
Date now = new Date();
System.out.println(now.after(2002/06/01));
---------------------------------------
このように記述すると
「java.util.Date の after(java.util.Date) は (int) に適用できません」
というエラーが出てしまいました。

after()メソッドの引数はDate型と書いてあったのですが、「2002/06/01」というのDate型にはならないのでしょうか?
もし、よろしければDate型とは何なのかということと、after()メソッドの使用例をご教授してもらえないでしょうか?
図々しくて大変申し訳ございません。

補足日時:2002/06/03 20:51
    • good
    • 0

コンパイルしてないけど多分



Date now = new Date("2002/04/01");
System.out.println(now.after(new Date("2002/06/01")));

じゃないかな?
Stringによるコンストラクタは推奨されてないけど。(^^;

Date型が何か?
って話には、そうですねぇ~
String型ってじゃぁなんだ?
って考えてください。
なんでしょ? String型って?
Strng型っていうのは文字列をあらわすクラス(型)ですよね?
さて、それじゃぁDate型ってのは何か?
名前の通り日付をあらわすクラス(型)です。


とりあえず、わからないメソッドについては
ちゃんとAPIリファレンスを引いてみてくださいな


ほいでは(^-^/~~

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/api/java …
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

なんとか問題解決しました。

今回はどうもありがとうございました。

また何かありましたら宜しくお願い致します。

お礼日時:2002/06/05 09:33

特定の日付のオブジェクトを作りたかったら


下記のようにSimpleDateFormatを利用します。
java.util.* パッケージと java.text.* パッケージを
import するのをお忘れなく。

不明点は、まず自分でAPIを調べてから、
それでもわからなかったら聞いてください。


try {
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
 Date now = new Date();

 if (now.after(dateFormat.parse("2002/05/31"))) {
  System.out.println("今日は2002/05/31よりも後の日です。");
 }

 if (now.before(dateFormat.parse("2002/06/10"))) {
  System.out.println("今日は2002/06/10よりも前の日です。");
 }
} catch (Exception ex) {
 ex.printStackTrace();
}
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

なんとか問題解決しました。

1つ気になったのが、
回答してくださった中のafterメソッドとbeforeメソッドについて、
例えば、今日の日付(2002/06/05)を引数にすると、
afterメソッドではtrueを返すのに対し、beforeメソッドだとfalseを返すのですが、これはメソッドの性能上の問題なのでしょうか?

あとAPIドキュメントなのですが、メソッド等の使用例がないので初めてメソッドを使用する際に使いにくくないでしょうか?それとも自分が知っているAPIドキュメント(http://java.sun.com/j2se/1.3/ja/docs/ja/api/)とyujiさんが言われているAPIドキュメントは違うのでしょうか?

お礼日時:2002/06/05 09:48

>例えば、今日の日付(2002/06/05)を引数にすると、


>afterメソッドではtrueを返すのに対し、beforeメソッドだとfalseを返すのですが、これはメソッドの性能上の問題なのでしょうか?

それは時刻も含めて比較しているためでしょう。
Date now = new Date();
で作られたnowは現在の時刻のDateオブジェクトです。

DateFormat.parse("2002/06/05");
のように parse で得たDateオブジェクトは時刻は
切り捨てられています。(つまり0時0分0秒の時点のデータです。)
時刻も得たいのであれば、
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
のように時分秒まで parse するようにすればいいだけです。


>あとAPIドキュメントなのですが、メソッド等の使用例がないので初めてメソッドを使用する際に使いにくくないでしょうか?

APIドキュメントだけではわかりづらいというのでしたら
参考書を買った方がいいです。
私は「Java プログラミング BLACK BOOK」
インプレス社発行の本をいつも手元に置いています。
    • good
    • 0
この回答へのお礼

回答どうもありがとうございます。

非常に分かりやすいサンプルのコードだけでなく、
参考の書籍も合わせてご教授頂き、大変感謝しております。

これからも勉強に励んで、yujiさんのように質問に答える側になるよう
頑張りたいと思います。
今回は本当にどうもありがとうございました。

お礼日時:2002/06/06 10:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!