• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:入力した年月日が過去か現在か未来かを表示するプログラム)

入力した年月日を判定するプログラム

このQ&Aのポイント
  • 入力した年月日を判定するプログラムの作成方法について教えてください。
  • Javaを使用して入力した年月日が過去か現在か未来かを判定する方法を教えてください。
  • 入力した年月日が過去、現在、または未来であるかを確認するために<>=を使用する方法を教えてください。

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

  • ベストアンサー
回答No.1

Calenderクラスにはafterメソッドやbeforeメソッドがあるのでコレを使います。 http://java.sun.com/javase/6/docs/api/java/util/Calendar.html

persona
質問者

お礼

即レスを頂き、ありがとうございます。 そういうメソッドが用意されているんですね。 何だか今になって恥ずかしくなってきました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 以下のJAVAプログラムでご質問です。

    import java.util.*; import java.io.*; import java.text.*; public class JTest9 { public static void main(String[] args) throws IOException { System.out.println("基準となる年月日を入力して下さい。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); String str3 = br.readLine(); int year = Integer.parseInt(str1); int month = Integer.parseInt(str2); int day = Integer.parseInt(str3); String targetDateText = year + "/" + month + "/" + day; int addDate = 10; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date targetDate = sdf.parse(targetDateText); Calendar cal = Calendar.getInstance(); cal.setTime(targetDate); cal.add(Calendar.DATE,addDate); System.out.println(sdf.format(cal.getTime())); } } 上記は、コンソールから、年、月、日 を入力し、その入力した日付から10日後の日付を 出力しようとしているプログラムです。 しかし、17行目のsdf.parse(targetDateText);において、コンソール上に下記エラーが出ます。 Exception in thread "main" java.lang.Error: Unresolved compilation problem: 処理されない例外の型 ParseException このエラーを解決したいのですが、どのように修正すればよいのでしょうか。 ご助言の程、よろしくお願い致します。

    • ベストアンサー
    • Java
  • 入力した年月日が過去か現在か未来かを表示するプログラム その2

    実は、 http://oshiete1.goo.ne.jp/qa4722681.html これは添削問題だったんですね。 まず自分がある一部分しかソースコードを記述しなかったのがいけなかったのかもしれませんが、添削問題の解答は以下のようなものでした。 //「SimpleDateFormat」クラスを活用できていませんよ。 //上記ままだと、処理のタイミングによっては現在日付を入力しても //違う日付と判断されてしまいますよ。(秒まで管理しているものが比較対照のため) //以下のよう少しシンプルに記述することが出来ますよ。 で、問題のところですね。 //フォーマット形式を設定します。 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); //Dateクラスに変換したコンソール日付を年月日形式に整形します。 String result1 =sdf.format(myCal.getTime()); Calendar myToday = Calendar.getInstance(); //Dateクラスに変換した現在日付を年月日形式に整形します。 String result2 =sdf.format(myToday.getTime()); if (result1.compareTo(result2)== 0) { System.out.println("現在日付と同じ日付です。"); }else if (result1.compareTo(result2)> 0){ System.out.println("現在日付よりも後の日付です。"); }else if (result1.compareTo(result2)< 0){ System.out.println("現在日付よりも前の日付です。"); やはり<>=のような比較演算子を使うみたいです。 でも、compareTo()メソッドは初めて知りました。 後、どういう計算で0より大きいのか、小さいのかを表すのかは、未だに分かりません。 before()メソッドとafter()メソッドを使うよりいいんですかね。 分かる方がいましたら、教えて頂けると大変有り難いです。 どうぞ宜しくお願い致します。 後、ソースコードとかで足りない部分がありましたら言って下さい。 その部分は補足のところに書かせてもらいます。

    • ベストアンサー
    • Java
  • システム日付との比較

    始めたばかりで原因がわからず困っています。 以下のコードでコメント箇所を追加すると、 コンソール日付とシステム日付が一致しても正しい結果が 得られませんでした。 よろしくお願いします。 import java.util.*; import java.io.*; public class Test { public static void main(String[] args) throws IOException { System.out.println("年月日をそれぞれ入力して下さい。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str1 = br.readLine(); String str2 = br.readLine(); String str3 = br.readLine(); int intTmp1 = Integer.parseInt(str1); int intTmp2 = Integer.parseInt(str2); int intTmp3 = Integer.parseInt(str3); Calendar myCal = Calendar.getInstance(); myCal.set(intTmp1,intTmp2-1,intTmp3); System.out.println(myCal); //*コンソールで入力した日付を表示 Calendar myToday = Calendar.getInstance(); System.out.println(myToday); //*現在日付を表示 if(myToday.equals(myCal)){ System.out.println("入力したデータは現在日付と同じ日付です。"); }else{ System.out.println("入力したデータは現在日付とは違う日付です。"); } } }

  • calendarクラスの使い方について

    時間データ(h:mm:ss)のみの差を求める場合に calendarクラスを利用しましたが 20時32分50秒というデータを cal.get(20,32,50)と記述して以下の プログラムを実行しても ---------結果 差:4838400 となりうまくいきません。 型があってないので、当然といえば当然かもしれませんが・・・ 本当は時刻、分、秒だけのデータで 差:115 と計算し表示させたいのです。 どうやったら、 2004,5,16,20,32,50 ではなく、 20,32,50の情報だけで時間と時間の差を 取得できるでしょうか 他の方法が思いつきませんので どなたかご存知であれば教えてください。 よろしくお願いします ---------プログラムリスト import java.util.Calendar; import java.util.Date; public class TestDate{ public static void main(String[] args){ Calendar cal1 = Calendar.getInstance(); cal1.set(2004,5,16,20,32,50); Date dat = cal1.getTime(); long date1 = dat.getTime(); Calendar cal2 = Calendar.getInstance(); cal2.set(2004,5,16,20,34,45); long date2 = cal2.getTime().getTime(); long distance = (date2 - date1) / (1000); System.out.println("差:"+distance); } } -----------------------------------------

    • ベストアンサー
    • Java
  • java コマンドライン引数を利用したカレンダー

    args[0]に例えば200805と入れたら2008年5月のカレンダーが表示される、そんなプログラムを書きたいと思っています。 理想は↓の形です。(_は空欄の意です;) 2008年5月 日 月 火 水 木 金 土 ___________1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 importは使わないよう指示が出ていますので、フルネームでカレンダークラスを記載しています。 public class CalShow { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ java.util.Calendar cal = java.util.Calendar.getInstance(); //コマンドライン引数の前4桁をyear、 int year = Integer.parseInt(args[0].substring(0, 4)); //後ろ2桁をmonthとしてそれぞれintで定義 int month = Integer.parseInt(args[0].substring(4)); System.out.println( year + "年" + month + "月"); System.out.println(" 日 月 火 水 木 金 土"); cal.set(year, month - 1, 1); int startDay = cal.get(java.util.Calendar.DAY_OF_WEEK); cal.add(java.util.Calendar.MONTH, 1); cal.add(java.util.Calendar.DATE, -1); int lastDay = cal.get(java.util.Calendar.DATE);      /*なんとなくここまで書けたのですが、ここからどのように木曜日と1日を繋げていけばよいのか分からなくて困っています。 どういったメソッドを使えばいいのかなど、どなたか教えていただけませんでしょうか? よろしくお願いいたします。*/ } }

    • ベストアンサー
    • Java
  • いつまでも偶数の入力を求めるプログラム

    こんにちは。プログラマーの見習いで、現在勉強中です(学生ではなく社会人です)。解答のないテキストで、いつまでも偶数の入力を求めるプログラムを作っているのですが、うまくいきません。どこが悪いか教えて頂けないでしょうか?よろしくお願いします。 //文字列を入力するためのパッケージをimport import java.io.*; class opt53{ public static void main(String[] args) throws IOException{ //文字列を入力するための準備 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); do { System.out.println("偶数を入力してください"); //入力された文字列を変数guuに格納 String guu = br.readLine(); //入力された文字列をint型に変換 int num = Integer.parseInt(guu); } while (num%2!=0); System.out.println("正しく偶数が入力されました。"); } }

    • ベストアンサー
    • Java
  • doubleで入力するには?

    はじめまして。 Javaの勉強をはじめたばかりです。 質問のしかたが正しいのかもちょっと自信がないのですが、 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int num = Integer.parseInt(str); っていうのがありますよね? これの『int』のところを『double』で入力できるように するにはどうすればいいのでしょうか? すごい初心者な質問で申し訳ないですが、よろしくお願いします。

    • ベストアンサー
    • Java
  • 入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小

    入力された入力値と最大値、最小値を表示させるプログラムで、最大値と最小値のプログラムを下記に作成してみたら最小値が0になりました。そして、もう一つ繰り返し文を作ってみたら、最大値・最小値がうまく表示されました。この違いはどうしてですか?教えてください。 import java.io.*; class Hairetu1 { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("データはいくつですか?"); String str = br.readLine(); int num = Integer.parseInt(str); int a[]=new int[num]; int i; int max=0; int min=a[0]; for(i=0; i<a.length; i++){ System.out.print((i+1)+"番目は?"); str = br.readLine(); int tmp = Integer.parseInt(str); a[i] = tmp; if(max<tmp){ max=tmp; } if(min>tmp){ min=tmp; } } System.out.println("入力した値は"+test.length); System.out.println("最大は"+max); System.out.println("最小は"+min); } }

    • ベストアンサー
    • Java
  • Javaによる現在時刻の表示について

    Javaで現在時刻を表示するプログラムを作りました。 今のままだと 2009/8/26(木) 15:8:7となり、 月日・時間分秒が一桁のときは前に0をつけて二桁(15:08:07のように)表示にしたいと思います。 何かいい方法はないでしょうか? if文で作成するとなると、かなりたくさんのコードを書かないといけない気がします。 良い案があれば是非ご教授頂ければと思います。 import java.util.Calendar; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Servlet_106 extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException{ res.setContentType("text/html; charset=Shift_JIS"); PrintWriter out = res.getWriter(); String title = "現在時刻:"; Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH) + 1; int day = cal.get(Calendar.DATE); StringBuffer dow = new StringBuffer(); switch (cal.get(Calendar.DAY_OF_WEEK)){ case Calendar.SUNDAY: dow.append("日"); break; ~~~(略)~~~ } int hour = cal.get(Calendar.HOUR_OF_DAY); int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); out.println("<html lang=\"ja\">"); out.println("<head><title></title></head>"); out.println("<body>"); out.println("<p>現在時刻:" + year + "/" + month + "/" + day + "(" + dow + ")" + hour + ":" + minute + ":" + second + "</p>"); out.println("</body></html>"); out.close(); } }

    • ベストアンサー
    • Java
  • importが分からない

    importが違うせいだと思いますが、コンパイルできるように直してください。 import java.util.Date; import java.text.SimpleDateFormat; import java.util.Locale; public class a {  public static void main (String args[]) {   Date d = calendar.getTime();   SimpleDateFormat f = new SimpleDateFormat("EEE", Locale.JAPANESE);   String s = f.format(d);   System.out.println(s);  } }

このQ&Aのポイント
  • 4歳の子供がピアノを習い始めて3ヶ月が経過しました。先生からは子供の進み具合が良いと褒められていますが、ピアノを弾けない私にとっては伸び率が分からず困っています。先生は生のピアノをオススメしていますが、電子ピアノでも問題ないのでしょうか?趣味程度であればグランドピアノは必要ないのか迷っています。
  • 子供がピアノを習い始めて2ヶ月を経過し、自主的に練習するようになりました。先生からは子供の進みが早く、手の形も綺麗だと褒められています。最近は先生から生のピアノを購入することを勧められましたが、電子ピアノでも十分なのでしょうか?購入の際には予算や将来の目標も考慮しなければなりません。
  • 4歳の子供がピアノを習い始めて3ヶ月が経過しました。先生からは子供の進み具合が良いと褒められていますが、ピアノを弾けない私にとっては伸び率が分からず困っています。趣味程度であれば電子ピアノでも十分か悩んでいますが、生のピアノを迷っています。予算や将来の目標などを踏まえて選びたいです。
回答を見る

専門家に質問してみよう