• ベストアンサー

ある年月の月間日数を取得する方法を教えて下さい。

年月から、月間日数を取得する方法を教えて下さい。 例えば、「2003年7月」は、「31日間」あると思いますが、 その「31日間」を取得する方法を教えて下さい。 「2003年7月」を表すDate型オブジェクトを引数に 月間日数を取得したいです。 Javaで実現する方法をお願いします。

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

  • ベストアンサー
  • takaP-
  • ベストアンサー率79% (83/105)
回答No.3

java.util.Calendar#getActualMaximum() を使用して下さい。 http://www.okweb.ne.jp/kotaeru.php3?q=595271 上記の問題(解決されたのでしょうか?)もそうですが、 この手の日付の変更や情報の取得をするには、java.util.Calnedar を継承した java.util.GregorianCalendar クラスを用います。 API リファレンスをご覧になれば分かると思いますが、この手の問題を解決するメソッドが一通り揃っています。

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

その他の回答 (2)

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.2

こんばんは 訂正です。 誤   return (year+year/4-year/100+year/400+(month*13+8)/5+1)%7 ; 正   return (year+year/4-year/100+year/400+(month*13+8)/5+day)%7 ;

全文を見る
すると、全ての回答が全文表示されます。
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

こんばんは 曜日鑑別法というのをご存じでしょうか? int weekDay(int year,int month,int day) {   if ( month < 3 ){     year -- ;     month += 12 ;   }   return (year+year/4-year/100+year/400+(month*13+8)/5+1)%7 ; } この関数に年、月、日を入れると、曜日に該当する数値を返します。  0:日曜日  1:月曜日  2:火曜日  3:水曜日  4:木曜日  5:金曜日  6:土曜日 この関数を使って、今月の1日と次月の1日の差分を計算します。 i = weekDay(year,month,1); if ( month < 12 ){   month++ ; } else {   year++ ;   month = 1 ; } j = weekDay(year,month,1); if ( i <= j ){   return 28+j-i ; } else {   return 35+j-i ; } 当方Javaの環境が手元に無いので、デバッグしていません。 また、Data型からyearやmonthを取り出す方法は、お任せします。

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

関連するQ&A

  • ある年月の前月(月の開始日)を取得する方法を教えて下さい。

    ある年月から、その前月(月の開始日)を取得する方法を教えて下さい。 例えば、「2003年7月」の前月は、「2003年6月」ですが、 その月の開始日「2003年6月1日」を取得する方法を教えて下さい。 「2003年7月」を表すDate型オブジェクトを引数にして、 「2003年6月1日」を取得したいです。 言語はJavaです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • 2つの年月の前後関係の判定(未解決です・・)

    先程、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=613656 で同じ質問をしたのですが、質問の仕方が悪かった為、 また、まだ未解決な為、再度同じ質問をさせて頂きます。 せっかく回答頂いたのに本当にすみません・・。 2つのDateオブジェクトの 『 年月 』 の前後関係を調べる方法を 知りたいのですが・・↓ 例えば、 1.2003/5/7 (java.sql.Dateオブジェクト) 2.2003/5/20 (java.sql.Dateオブジェクト) 1と2を比較し、「1は2よりも前の月かどうか」を調べたいです。 ※「1は2よりも前の日にちかどうか」ではないです 上記の場合は、2つが同じ月である事を取得したいです。 (※「1は、2よりも前の“日付”である」ことを取得したいのではありません。) 更に、以下のように年をまたがる場合も正しく取得できるように する必要があります↓ 1.2002/12/1 (java.sql.Dateオブジェクト) 2.2003/1/1 (java.sql.Dateオブジェクト) ※上記のような場合は、 『 1は2の前月 』 という結果を取得したいです。 年の繰り下がりや繰り上がりなども考慮して 整合性のとれた結果を取得できるような方法を教えて下さい・・。 ややこしいことを質問してすみません・・。 先程の質問と回答を参照して頂けると、質問の内容を 分かって頂けるかもしれません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=613656 むずかしいことなのかも知れませんが、もし分かるという方 いらっしゃいましたら、教えて頂けないでしょうか・・よろしくお願いします。

    • ベストアンサー
    • Java
  • Access2000で月の日数を取得したいのですが。。。

    単純に、月の日数を取得したいです。 開始日とか終了日とかなしに、 例えば01/07と入力すれば、その年月の日数が表示されるようにしたいと思っています。 やり方を教えて下さい。

  • 免許証の取得した年月がわかりません。

    免許の取得日の確認方法を教えてください。 現在就職活動をするにあたり、運転免許を取得した年と月の情報が必要となりました。大型トラックの免許の年月がわかりません。どうすればよろしいのでしょうか? 免許証には普通二種まで載ってましたが大型免許はわかりません。

  • 入力された年月からその月の末日を取得する

    import java.util.*; class Sample { public static void main(String[] args) { System.out.println(args[0]); Calendar cal = Calendar.getInstance(); cal.set(2000,1,1); int y = cal.get(Calendar.YEAR); int m = cal.get(Calendar.MONTH) + 1; int last = cal.getActualMaximum(Calendar.DATE); System.out.print(y + "年" + m + "月の末日は "); System.out.println(last + "日です"); } } で、2000年2月の末日を取得することが出来るのはわかったのですが プログラム上で年月の入力を促してその月の末日を取得するにはどうすればいいのでしょうか? (プログラム実行例) C:\JAVA\SAMPLE>java Sample 2009 2 2009年2月の末日は 28です ↑のようにプログラム上で年 月を入力して実行し、末日を取得したいのですが・・・ 多分この場合、入力数値などに対する例外処理や閏年の処理などもやらないとダメだと思いますがよくわかりません

    • ベストアンサー
    • Java
  • 指定した年月までのデータを取得するSQL文

    いつもお世話になっております。 今、指定した年月までのデータを取得するSQL文を考えています。 例:NENGETSU_DATEカラムがDATE型で、 データとして、2008/11/12と、2008/11/18と、2008/12/12が入っているとして、11月だけのデータを取得したい。(今回は、2008/11/12と、2008/11/18を取得) どのようなSQL文を書けばよろしいでしょうか。 よろしくお願いいたします。

  • HPのドメインの取得した年月を調べたいです。

    HPのドメインの取得した年月を調べたいのですが 調べる方法はあるでしょうか? 教えて下さい。 宜しくお願い致します。

  • 今月の日数を取得

    PHP4で今月が何日間あるのかを取得したいのですが、 いい方法はあるでしょうか? 現状は何月でも31日間として考えているので、いい方法があれば利用したいのですが。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 年月の読みかた

    「20年の年月が流れた。」という文章の場合、年月は「としつき」か「ねんげつ」か、どちらで読むのが正しい読み方でしょうか。 手元の辞書(岩波国語辞典より引用)によると、 としつき……1.年と月。2.とき。歳月。ねんげつ。3.長い歳月。4.今まで長い間。年来。 ねんげつ……としつき。長い間。 とありました。 どちらで読むのがこの場合正しいでしょうか。

  • 対象年月の1日から末日までの日付を抜けがなく取得したい場合

    対象年月の1日から末日までの日付を抜けがなく取得したい場合 どの様なSQLを作ればいいでしょうか。 今考えているのが、  (1).月の初めは必ず1日から始まる  (2).対象年月の末日は取得できる   以上より、1日から末日までをwhile文(for文)で回せば抜けがな く日付を取得できると思っています。 上記を実現できるSQLをご教示下さい。 よろしくお願いします。