• ベストアンサー
  • すぐに回答を!

javaでの日付の大小比較について

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

共感・応援の気持ちを伝えよう!

  • 回答数4
  • 閲覧数32654
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.4
  • yuji
  • ベストアンサー率37% (64/169)

>例えば、今日の日付(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」 インプレス社発行の本をいつも手元に置いています。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答どうもありがとうございます。 非常に分かりやすいサンプルのコードだけでなく、 参考の書籍も合わせてご教授頂き、大変感謝しております。 これからも勉強に励んで、yujiさんのように質問に答える側になるよう 頑張りたいと思います。 今回は本当にどうもありがとうございました。

関連するQ&A

  • String型の日付(2005/11/25)の比較

    Java初心者です。String型で2005/11/25 のように2つString型で日付を取得したときに、大小の比較をしたいのです。どういう方法が考えられますか?よろしくお願いします。

    • ベストアンサー
    • Java
  • JUnit4での日付の大小比較について

    JUnit4での日付の大小比較について /* 環境 */ JDK 6.0 Update17 eclipse 3.5 JUnit4.7 初めてJUnit4を使ってテストコードを書いてみようと思ったのですが、 日付の大小比較についての記述がわかりません。 例えば、次のコードでyourBirthdayがmyBirthdayよりも後の日付である(大きい)ことを確認するには どのように書いたらよいのでしょうか? import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; ... ... Date myBirthday = ... Date yourBirthday = ... assertThat(myBirthday, is(notNullValue()); assertThat(yourBirthday, is(notNullValue()); // yourBirthday > myBirthday であることを確認したい assertThat(yourBirthday, /* ??? */); ご教示よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaの文字列の大小比較についてです。

    Javaでは、文字列の大小比較をする時、StringのcompareToを使用しまが… compareToの中の処理は一旦char型に直して、それを比較しているのでしょうか? また、compareToを使用せずに、プログラム内に自分で書いた場合、処理速度は変化ありますか?

    • ベストアンサー
    • Java

その他の回答 (3)

  • 回答No.3
  • yuji
  • ベストアンサー率37% (64/169)

特定の日付のオブジェクトを作りたかったら 下記のように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(); }

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。 なんとか問題解決しました。 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ドキュメントは違うのでしょうか?

  • 回答No.2
  • -soh-
  • ベストアンサー率27% (55/201)

コンパイルしてないけど多分 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/util/Date.html#after(java.util.Date)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。 なんとか問題解決しました。 今回はどうもありがとうございました。 また何かありましたら宜しくお願い致します。

  • 回答No.1
  • -soh-
  • ベストアンサー率27% (55/201)

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()メソッドの使用例をご教授してもらえないでしょうか? 図々しくて大変申し訳ございません。

関連するQ&A

  • 日付の比較をしたいのですが・・・。

    当方JAVA初心者です。 質問させてください。 日付の比較をして、差を求めたいのですが、 ------------------------------------ Ex)2004/6/4(システム日付)と   2004/6/9で日付を比較し、   「差は5日」という結果を求めたい ------------------------------------ カレンダクラスのafterやbeforeは、前か後ろかしか 判断できないですよね? そこで、簡単に日付を比較し差を求めるというやり方はあるんでしょうか? それとも年月日を崩すなどして計算しないといけないのでしょうか? 過去にこのような質問があったらすいません。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 数の大小はどのように比較されるのでしょうか?

    具体的な二つの数が与えられたときに、その大小を比較するにはどうすればよいでしょうか? 例えば1,2という二数が与えられたとき、大小を直感に頼らず比較するにはどのように理論を展開すればいいでしょうか。 質問を少しだけ言い換えると   a-b > 0  ならば  a>b なので、ある数が0より大きいか小さいかを判断すれば大小の比較ができると思います。 では任意の実数が与えられたとき、それが0より大きいか小さいかを判断するにはどうすればいいでしょうか。 理系大学生ではありますが、あまり深い知識もないので、お手柔らかにお願いします。

  • 大小比較

    2/3、log_2 √3、log_1/3 √(3/2)、log_√3 √6、log_3 √2の大小を比較せよ 前に同じ質問をさせて頂いたとき、底を10にして log_2 √3=log_10 3/(2log_10 2) log_1/3 √(3/2)=(log_10 3-log_10 2)/(-2log_10 3) log_√3 √6=(log_10 2+log_10 3)/log_10 2 log_3 √2=log_10 2/(2log_10 3) つまり 2/3 log_10 3/(2log_10 2) (log_10 3-log_10 2)/(-2log_10 3) (log_10 2+log_10 3)/log_10 2 log_10 2/(2log_10 3) で大小比較すると教えて頂いたのですが、これらはどのように大小比較すればいいんでしょうか?教えてください!

  • 数の大小の比較

    数の大小の比較 …です。 どなたか教えてください。 a>0, b>0, a+b=1 のとき、1、a^2+b^2, a^3+b^3 の大小を比較せよ。 bをaの式にして代入すればよいのでしょうか。 比較のやり方がよくわかりません。 親切な方、よろしくお願いします。

  • 数の大小の比較

    数の大小の比較 …です。 どなたか教えてください。 a>0, b>0, a+b=1 のとき、1、a^2+b^2, a^3+b^3 の大小を比較せよ。 bをaの式にして代入すればよいのでしょうか。 比較のやり方がよくわかりません。 親切な方、よろしくお願いします。

  • javaのchar型の大小比較について

    javaのchar型の比較は何を基準に行っているのでしょうか? byteに直した物を基準におこなっているのでしょうか?

    • ベストアンサー
    • Java
  • 2-√2 と 3-√6 の大小比較

    2-√2 と 3-√6 の大小を比較する うまい方法はないでしょうか? √2≒1.4、√6≒2.4 のように 小数第一位まではわかるとします。 いずれも0.6程度の数ですので、 逆数をとって 1/(2-√2) = (2+√2)/2 = (6+3√2)/6 ≒ 10.2 /6 1/(3-√6) = (3+√6)/3 = (6+2√6)/6 ≒ 10.8 /6 より、 3-√6 < 2-√2 という方法は思いついたのですが…。

  • 大小比較について

    log25(底が2)と2log812の大小を比較せよというもんだいなんですが 2log812の底を変換して4/3+2log23/3となったのですがこの先どうしたらよいかわかりません あと(1/3)^30と(1/5)^20の比較もしたいのですが これもlogをつかうのでしょうか? ご教示おねがいします。

  • 大小の比較

    a,bが3^(a)=5^(b)を満たすとき、3aと5bの大小を比較する問題で (i) a=0のとき 3^(0)=5^(b) 1=5^(b) となりますが、どうして a=0のとき、b=0となって3a=5bとなるのですか? (ii) a>0のときなぜ、b>0になるのですか? 3^(a)=5^(b) 例えば 3^(a)=5でしたら a=log(3)5と表せますが この問題の場合 3^(a)=5^(b)から どうしたらalog(5)3=bとなるのでしょうか? どうして 3a-5b=3a-5alog(5)3となるのですか? 最後 なぜ、a>0、b>0なのに alog(5) (125/243)<0となり どうして0より小さくなるのですか? そして、なぜ答えは3a<5bとなるのですか? 質問ばかりしてすいません。

  • 大小とか多少とかの比較

    2歳8ヶ月男子、10月より療育で月2回通っています。療育に通う前(8月)の発達検査は年相応との事でした。2回目はまだ受けていません。  大小・多少は単体だと解るようなんですが、比較が解らないようです。どうやって理解していく・どうやって教えていけばいいんでしょうか・・。  そういう話題を振ると、イヤなのか必ずフザけて全然話を聞きません。  こどもチャレンジのしまじろうとか好きなんで、チャレンジの本の絵本部分などは普通に聞いてくれるのに、そういう質問系の話になると、途端にふざけ始めます。  実物で例に出してもダメなんですよね・・。  例えば大きいみかんと小さいみかんを見せて「こっちは大きいね、こっちの方が小さいね」とかそんな感じで話題を振ると「イヤだ」とか言い始めて聞こうとしません。早くみかん食わせろって感じです。  言葉は2歳3ヶ月頃から3語文が出ていて、今はかなり話せるようになってきました。ぶつぎりの文章が多いですが、子供が言いたい事は大体わかります。他人が聞いても息子が言っている事は理解できる程度に話せるようになってきてます。まだ興奮すると宇宙語ですが・・。  言葉の意味自体は大小・多少などは解っているようなので、比較ってどう教えていけばいいんでしょうかね・・。この月齢ならもう理解できてて当然なのかもよく解りませんが、チャレンジなどを見てるとそういう比較の問題があるので、そろそろ理解するべき事なんだろうな・・なんて思いまして。  見分けるのは得意のようなので、理解すれば早いと思うのですが・・。  よろしくお願いします。