引数で日付を2つ与え、
その間の日付リストを取得できるようなメソッドを
作成したいのですが、どのようにすればいいのでしょうか・・?
例えば、以下のような感じです。
●引数
1. 開始日(Date型) 例> 2003/4/12
2. 終了日(Date型) 例> 2003/6/25
●戻り値
開始日と終了日の間の日付(Date型)のリスト
例>2003/4/12~2003/6/25までの日付のリスト↓
4/12, 4/13, 4/14 ・・・・・ 6/23, 6/24, 6/25 が格納されたリスト
No.2ベストアンサー
- 回答日時:
kawaenさん、こんにちは。
考え方は#1の方の通りです。
穴空けで回答します。
public static List getDateList( Date headDate, Date tailDate )
{
// このメソッドの戻り値
List list = null;
// 1日加算用
Calendar calendar = null;
// リストに追加する要素
Date date = null;
// リストを生成します。
list = new ????;
// カレンダを生成し、最初の日付を設定します。
// CalendarクラスのgetInstanceメソッド、setTimeメソッドを使います。
calendar = ???
calendar.???
// ループの中で1日ずつ加算して、リストを生成します。
while( true )
{
// 現在の日付を取得
// CalendarクラスのgetTimeメソッドを利用します。
date = ???;
// 現在の日付が終了日付より未来になったら終了。
// DateクラスのcompareToメソッドを利用します。
if (??? > 0)
{
break;
}
// 現在の日付をリストに追加
list.add(date);
// 現在の日付を1日加算
// <=>"月の日数"を1増やします。
// Calendarクラスのaddメソッドを利用します。
calendar.add(???, 1) ;
}
// 生成したリストを戻します。
return list;
}
rollメソッドは(私は使ったことがなかったので調べてみましたが)、繰り上げ処理が行われないようです。たとえば、以下のように、7/31に1日rollすると7/1となりました。calendar = Calendar.getInstance();
calendar.set(2003, 7 - 1, 31);
System.out.println( calendar.getTime() );
calendar.roll(Calendar.DAY_OF_MONTH, 1);
System.out.println( calendar.getTime() );
なので今回はaddメソッドを採用しました。rollメソッドはこれはこれで別の機会で使えそうです。知ることが出来て嬉しいです。
参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java …
No.1
- 回答日時:
Calendar(GregorianCalendar)の
roll()メソッドを使えばできるのではないでしょうか。
開始日でGregorianCalendarを初期化して、
roll(Calendar.DATE, true)で一日づつ加算して、
getTime()でDateを得てlistに格納し、
終了日になるまで繰り返すという…。
やったことがないので自信なしにしておきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
JSPで<SELECT>の中にDBから持っ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
PropertyGridの中央の縦線
-
VBPをダブルクリックするとたま...
-
コマンドプロンプト実行後に画...
-
Windowsプログラムから音を出す...
-
Refreshメソッドの使い方
-
Excel VBA でExcelを終了したい...
-
final修飾子を使っているのに、...
-
教えてください C#でステートメ...
-
ListViewにて行追加
-
mainメソッドのthrows節で設定...
-
onClickで関数呼出し後に、結果...
-
(String args[])というメッソ...
-
引数は省略できません。とのコ...
-
エクセルVBAにおけるON TIMEメ...
-
Application.Wait の参照設定
-
エクセルのマクロでプリンタを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
コマンドプロンプト実行後に画...
-
DataGridViewでセルクリックイ...
-
Labelコントロールに数字を代入...
-
エクセルVBAにおけるON TIMEメ...
-
javascriptからjavaを呼び出したい
-
mainメソッドのthrows節で設定...
-
Refreshメソッドの使い方
-
配列のメソッド
-
VBPをダブルクリックするとたま...
-
final修飾子を使っているのに、...
-
ウィンドウを最前面にできません
-
JSPで<SELECT>の中にDBから持っ...
-
【sendkeysメソッドが動かずに...
-
Excel VBA でExcelを終了したい...
-
VB.netで、シリアル通信のタイ...
-
Application.Wait の参照設定
-
Excel VBA シェイプの原型のサ...
-
onClickで関数呼出し後に、結果...
-
drawStringで文字間隔の調整
おすすめ情報