- ベストアンサー
Javaで配列に日付を入れる方法
- Javaの配列に1年の始めから終わりまでの日付を入れる方法について知りたいです。
- 配列に日付を入れるためには、年、月、日の値を取得する必要がありますが、具体的な方法が分かりません。
- 他の方法で配列に日付を入れることができれば、それについても知りたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
kamkamkam3さんが書かれているプログラムをいかすとすれば・・・ 最初にy,m,dを2002,1,1に初期化して・・・ ループの途中でyをインクリメント・・・ 月末部分だけ例外処理(月末の翌日はd=1,m++) ってな感じでどうでしょう。 私が、つくった日付系のプログラムでは、別の考え方で関数をつくっていますが・・・それは、説明が面倒だから教えてあげません・・・って、いやインターネット上に同様のアルゴリズムがたくさん転がってて、別に私の側窓的なやつじゃないから、説明するのが恥ずかしいってのが正しいです。
その他の回答 (1)
- kaji
- ベストアンサー率32% (27/84)
すみません 回答にミスが・・・ 誤「ループの途中でyをインクリメント・・・ 」 正「ループの途中でdをインクリメント・・・ 」 ついでに・・ 参考URLのプログラムはJavaでなく、 Cで書いてます。 このCGIで「インターネット上に同様のアルゴリズムがたくさん転がって」る関数を使ってはいますが、JAVAのCGIではないです。
お礼
どうも。。。一晩寝てすっきりしたところできました。以下のコードです。 import java.util.*; public class cal6 { public static void main(String[] args){ Calendar cal = Calendar.getInstance(); for(int i = 0; i < 365; i++){ cal.set(2002,0,i + 1); int y = cal.get(Calendar.YEAR); int m = cal.get(Calendar.MONTH) + 1; int d = cal.get(Calendar.DATE); String str[] = new String[365]; str[i] = String.valueOf(y) + "." + String.valueOf(m) + "." + String.valueOf(d); System.out.println(str[i]); } } } ありがとうございました。では、又の機会に。
お礼
どうもご返事ありがとうございました。 私なりに工夫したのですが、1月分はちゃんと入ったんですよ。ところが2月以降は全部2002.2.1もしくは2002.3.1になってしまって。 以下のコードです。 //1月分 for(int i = 0; i < 31; i++){ s[i] = "2002.1." + String.valueOf(i + 1); } //2月分 for(int i = 31; i < 59; i++){ int k = 1; s[i] = "2002.2." + String.valueOf(k); k++; } //3月分 for(int i = 59; i < 90; i++){ int k = 1; s[i] = "2002.3." + String.valueOf(m); m++; } //表示 for(int i = 0; i < 90; i++) System.out.println(s[i]); なぜかしらん?明日違う方法で試してみたいと思います。 上記のことに関しては気にしないでください。うちのパソコンは以前壊れてしまったので、そのせいだと思います。ただ、状況をお知らせしようと思いまして。 どうもありがとうございました。