• ベストアンサー

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

年月から、月間日数を取得する方法を教えて下さい。 例えば、「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を取り出す方法は、お任せします。