実現したいこと
うるう年を考慮して、年、月、日が変更するJavaのカレンダープログラムを作成したい
前提
・整数文字列args[0],args[1], args[2]で与えられるとする
・年月日の曜日と年初からの日数を表示する
(今回は、2023年から2026年に限定したカレンダーを作成したい)
発生している問題・エラーメッセージ
理想 > java test2023 2023 9 14 2023:9:14:Thu:(257/365) > java test2023 2024 9 14 2024:9:14:Tue:(514/365) 実際 > java test2023 2023 9 14 2023:9:14:Thu:(257/365) > java test2023 2024 9 14 2024:9:14:Thu:(257/365) 問題点1 2023→2024にしても曜日が計算されない
該当のソースコード
Java
1class test2023{ 2 public static void main(String[] args){ 3 int i; 4 int[] y ={0,2023,2024,2025,2026}; 5 // jan feb mar apr may junjul aug sep oct nov dec 6 int[] m ={0,31,28,31,30,31,30,31,31,30,31,30,31}; 7 //2023年は1日が日曜日なので、Sunが配列の1番目になるよう曜日を配置 8 String[] week ={"sat","Sun","Mon","Tue","Wed","Thu","Fri"}; 9 int year =Integer.parseInt(args[0]);//年 10 int month =Integer.parseInt(args[1]);//月 11 int day =Integer.parseInt(args[2]);//日 12 int count =0;//年初からの日数 13 14 //うるう年を計算する 15 for(i=2023;i<=year;i++){ 16 if(i%400 == 0 || i%4 == 0 && i%100 != 0){ 17 } 18 19 for(i=1;i<month;i++){//前月までの日数を加える 20 count =count + m[i]; 21 } 22 count =count + day;//今月までの日数を加える 23 System.out.println(year+":"+month+":"+day+":"+week[count%7]+":("+count+"/365)"); 24 } 25 } 26} 27
補足情報(FW/ツールのバージョンなど)
forを使って順番に判別することには気づいたのですが、
どのように設定すればよいかわからないため、ご教示ください。
よろしくお願いいたします。
ソースコードの投稿に失敗しています。
class test2023{ の直前に「```Java」の行を挿入してください。
最後の } の直後に「```」の行があることを確認してください。
質問は編集できます。
投稿前に下にプレビューが表示されます。
>整数文字列args[0],args[1], args[2]で与えられるとする
で得た年月日とカレンダー表示に何も使っていないようですけど・・・
そもそもご提示のコードはエラーになってコンパイル・実行できません。
アドバイスありがとうございます!
整数文字列が使用できていませんでした。
実行できる構文に修正したのですが、曜日を考慮できませんでした。
おそらく、曜日のためのFOR文を追加する必要があると思うのですが、
どのような文を追加すればよいのでしょうか?

回答1件
あなたの回答
tips
プレビュー