• ベストアンサー

前の月を取得したいです。

現在「2008年7月」です。 一つ前の月を取得したいのですが、どうすればよいのでしょうか? 「2009年1月」であれば「2008年12月」を取得したいです。 教えてください。 よろしくお願いします。

  • Java
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.2

 Calendarクラスのaddメソッドを使えば、年月日のそれぞれの要素を進めたり戻したりできます。 この処理には月の日数の違いやうるう年なども考慮されるので、加減処理が簡単になります。 ただし、月は1月が0と表されることには注意が必要です。 以下がその例です。 import java.util.*; public class month { public static void main(String args[]) { try { String Str = args[0]; Calendar Cal = Calendar.getInstance(); int NenIndex = Str.indexOf("年"); int GatuIndex = Str.indexOf("月"); String YearStr = Str.substring(0, NenIndex); String MonthStr = Str.substring(NenIndex + 1, GatuIndex); int YearNum = Integer.parseInt(YearStr); int MonthNum = Integer.parseInt(MonthStr) - 1; Cal.set(YearNum, MonthNum, 1); Cal.add(Calendar.MONTH, -1); YearNum = Cal.get(Calendar.YEAR); MonthNum = Cal.get(Calendar.MONTH); System.out.println("Next Month : " + Integer.toString(YearNum) + "年" + Integer.toString(MonthNum + 1) + "月"); } catch (Exception e) { System.out.println(e.toString()); }; }; }

その他の回答 (1)

  • aigaion
  • ベストアンサー率47% (287/608)
回答No.1

その現在の月は,どのようなデータ構造で表現されているのでしょうか? 文字列?それとも単に月が数値で表現されている? 独自のデータ構造で表現しているなら,自分で場合分けして処理を書きましょう. 特にデータ構造を決めていないのであれば,Calendarクラスを使えばできますよ. http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Calendar.html http://www.fk.urban.ne.jp/home/kishida/kouza/kishou/11date.html

関連するQ&A

  • その月の日付を取得するには?

    PHPなどで、今日の日付を取得し、 その月に対して1日~31日までというような 終わる日にちを取得することは可能なのでしょうか?? 現在のプログラムでPHPで日付を取得して、 例:(今日だと2004/08) などというように その後、年と月は取得できているので、 その日にち1日から31日を取得できれば、 between A and B で、その月の内容を取得できるのですが、 無理でしょうか??

  • 資格取得年月について

    自分が取得した資格取得の年はわかるのですが、月を余りはっきり覚えていなくてどう調べていいのか、わからなくて困ってます。 取得した際の賞状等も随分前の事なのでなくしてしまいました。 何か調べる方法があれば教えて下さい。お願いします。

  • 年、月、日を取得する関数

    ストアドプロシージャで現在日付を取得するには GETDATE() を使いますが、年、月、日をそれぞれ取得したいのですがその方法(関数?)がわかりません。 また、取得した年、月、日は項目(Smallint)に書き込みます。 以上、よろしくお願いします。

  • 資格取得年月について

    履歴書の資格取得欄の件で質問します。 10年以上前に秘書検定の資格を取ったのですが、今度の就職先に少し秘書業務があるので書こうと思います(実務経験はなし)。 取得年は判るのですが、月まで覚えてません。 空欄でかまわないでしょうか? 同じくシスアドも取ったのですが、そちらも取得月が判りません。

  • 取得年月について教えてください。

    今、医療事務を目指して勉強しています。 そして医療事務の仕事をするために就職活動をしようと思って履歴書を作成中なのですが、資格・免許取得欄で行き詰ってしまいました。 医療事務の資格を取得するために、平成19年10月に試験を受ける予定です。履歴書に医療事務の資格を取得見込みとして書きたいのですが、この場合の取得年月は何年何月になるのでしょうか。 お分かりになる方がいらっしゃいましたら、教えてください。

  • 月一覧を取得するには?(201205、201204

    言語:PHP 質問させて頂きます。 現在、日付の一覧を表示したくプログラムを作成しています。 $start_date = "201012"; $end_date = date("Ym");//201205が代入されるとします。 この2010年12月から2012年05月までの日付を月別で 201012 201101 201102 201103 201104 201105 201106 . . . 201205 と、上記のような文字列で取得したいと考えているのですが、 どのような方法を行えば良いのでしょうか? 「201012」 このような文字列で取得したいわけは、 SQLにて検索にしようしたいと考えているからです。 「TO_CHAR(created,'yyyymm') = '201012'」 いろいろと考えてはみたのですが、これだという方法が思いつかなかったため、質問をさせて頂きました。 どなたかご存知の方がいらっしゃいましたら、よろしくお願い致します。 また、質問に不備などがあった際はすぐに修正致しますので、ご指摘下さい。

    • ベストアンサー
    • PHP
  • 法学検定、何月取得?

    4級を大学1年のときにとったんですが、 すっかり合格証を紛失してしまい、 取得年月が不明になってしまいました。 (初年度の2000年度受験です) 履歴書にいちお書いておこうと思ってるんですが、何月取得なんでしょう???

  • Solaris5.6 の bshで3が月前の日付を取得するには?

    毎日1回ファイルのリストを取得しているのですが、 それを月1回ある特定の時間起動の時に、3ヶ月前の ファイルリストは削除したいと考えいます。 ファイルリストは以下の形式で保存してます。 filelist.YYMMDD(例:filelist.030208) 問題は、3ヶ月前という日付を "date"コマンドで取得 する方法がわからないという点です。 TZ=JST+15 export TZ ↑このへんだと日にち指定は出来ますが、月は指定 できなかったのです。 bshで組んでいます。 何か良い策があったら教えて下さい。

  • シェルで月末日を取得したい。

    シェルで現在月の末日を取得したいのですが シェルだと難しいのでしょうか? シェルからストアドを実行して取得する事も考えましたが、 ストアドの戻り値をシェルから取得する方法が わからず断念しました(^^; どなたかご教授ください。 よろしくお願いします。

  • 永住権取得の可能性

    状況: 来日時期:2009年10月 在留資格:1)2011年11月までは家族滞在 2)2011年11月から現在まで就労ビザ 永住権の取得はいつなら確実に取得可能でしょうか。

専門家に質問してみよう