• ベストアンサー

Javaを使って、string型の年月日に日を加算するにはどの様にした

public_saの回答

  • public_sa
  • ベストアンサー率52% (13/25)
回答No.2

No1です すみません誤字訂正です。 加算する日数 + 1000 * 60 * 60 * 24 ↓ 加算する日数 * 1000 * 60 * 60 * 24

関連するQ&A

  • java String型から日付型へ変換

    こんにちは 現在javaのPGで日付チェックを行いたくプログラムを組んでいるのですが、色々なサイトを見ながら以下のようなものを書きました。 しかし、動かすと必ず例外にcatchされていまいます。 なぜ例外処理をされてしまうのか、原因がわかりません。 何がいけないのでしょうか?? ご教授お願いいたします。 import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; //strbeginDate, strcloseDateはフォームよりString型で受け取ります。 String strbeginDate, strcloseDate; SimpleDateFormat DatebeginDateformat = new SimpleDateFormat("YYYYMMDD"); SimpleDateFormat DatecloseDateformat = new SimpleDateFormat("YYYYMMDD"); Date datebeginDate = DatebeginDateformat.parse( strbeginDate ); Date datecloseDate = DatecloseDateformat.parse( strcloseDate ); intflag = datebeginDate.compareTo(datecloseDate);

    • ベストアンサー
    • Java
  • Java 日付の加算がうまくいきません。。どなたか助けてください・・・

    初歩的質問で申し訳ないのですが、ご存知の方ご教授ください。日付の加算についてどうしてもわからない箇所があります。 Calendar cal= Calendar.getInstance((TimeZone.getTimeZone("GMT"))); int year = 2007; int month = 1; int day = 1; cal.set(year,month,day); cal.add(Calendar.DAY_OF_MONTH,100); SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String tempDate=sdf.format(date); tempDate=2007/05/12 私が求めている結果は tempDate=2007/4/11 なのですが、tempDate=2007/05/12になってしまいます。 お願いします。 環境:WinXp pro Eclipse 3.1 JDK 1.4.2 2007/4/11は Oracle8i の実行結果です。 select to_date('2007-01-01') +100 from dual

    • ベストアンサー
    • 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
  • Stringとは一体何だ?

    Stringは型なのでしょうか?それともクラスなのでしょうか? Stringは参照型の型で、クラスを表す、つまり文字列を表す参照型の型であり文字列を表すクラスでしょうか?説明が悪くてごめんなさい。Java歴二週間です。

    • ベストアンサー
    • Java
  • JavaのStringクラスに「外字」という概念はある?

     今、客先のデータをJavaで処理しようとしているのですが、そのデータ(Shift-JISの文字列データ)には、今まで使われてきた「外字」が含まれています。  私の知っている範囲では、Shift-JISの文字列でも、Javaで読み込んだら内部的にUnicodeに変換されるのではないかと思っているのですが(←間違っているかもしれません)、そのUnicode変換の際に外字の部分はどうなってしまうのでしょうか。また、Unicodeに変換された文字列を、出力の際にまたShift-JISに戻すことになると思うのですが、そのときにはちゃんと以前の外字コードに戻ってくれることが保証されているのでしょうか。  JavaのリファレンスでStringクラスのページで「外字」という文字列で検索してみたのですが、まったくひっかからなかったので不安になっています。  よろしくお願い致します。

    • ベストアンサー
    • Java
  • JAVAで時間の計算方法

    お世話になります。 JAVAにおいて、文字列で"yyyyMMddHHmm"で表現された変数から30分前を文字列で取得するプログラムを考えています。 例えば、"201606011200"から"201606011130"を取得するプログラムです。 Calendarでaddをつかえば30分前を取得できる思うんですが、CalendarでyyyyMMddHHmmをどうすれば入力できるのかよくわかりません。 (Simpledateformatを使うと思うんですが、参考になるサイトが見つけられなかったです。) 上記を実現するプログラムをご教授いただけますでしょうか。 どうぞよろしくお願い致します。

    • ベストアンサー
    • Java
  • Stringクラスの変数の格納アドレスを知りたい

    いつもお世話になります。 Javaの文字列クラスのStringは参照型ですが、この変数の値が格納されたアドレスを知るためにはどうすればよいのでしょうか。eclipse上で、文字列の変数に対してtoString()を試してみたところ、格納されている文字列が出力されました。 ※自作したクラス、たとえばtest.MyClassだとすれば、toString()を用いれば「test.MyClass@01234」というような表記で出力されますが、このような情報を取得するにはどうすればよいでしょうか。 宜しくお願いします。

    • ベストアンサー
    • Java
  • 以下の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
  • 入力した年月日が過去か現在か未来かを表示するプログラム

    import java.util.*; import java.io.*; import java.text.*; 大事なところだけ抜粋。 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int year = Integer.parseInt(br.readLine()); int month = Integer.parseInt(br.readLine()); int day = Integer.parseInt(br.readLine()); Calendar cal = Calendar.getInstance(); cal.set(year,month-1,day); Calendar today = Calendar.getInstance(); SimpleDateFormat sbf = new SimpleDateFormat("yyMMdd"); Date date1 = cal.getTime(); Date date2 = today.getTime(); String result1 = sbf.format(cal); String result2 = sbf.format(today); 問題はここからです。 入力した年月日が過去か現在か未来か調べるのに<>=は使えないですよね。 どうすればいいのでしょうか。 アドバイス、宜しくお願い致します。

    • ベストアンサー
    • Java
  • String str = (String)url

    classファイルでのアプレットで、自分のパスを編集しようと思っています。 自分のパスをgetCodeBase()で得て、文字列として認識させたいのだけど それができていません。 String str; str = getCodeBase().toString; コンパイルエラー シンボル: 変数 toString 位置 : java.net.URL の クラス strBuf = getCodeBase().toString; getCodeBase()はStringでなく、URL型を返すみたいです。 これを文字列のように編集したいからSrting型にしたいんだけど どうすればいいんですか?

    • ベストアンサー
    • Java