追記:JDKのバージョンは1.6.0_19です。
そして指示によりimportは使用できないようになっています。
コマンドライン引数で年月の値を引き渡し(201604の様に6桁で)、それでカレンダーを表示させるプログラムを考えています。
一応理想の形で表示させることが出来るようになったのですが、もっと『ここはこうするべき』『こうした方がスマートで分かりやすい』『最初から大幅にやり直すべき』などご指摘がございましたら是非お願いいたします!
public class CalShow {
public static void main(String[] args) { java.util.Calendar cal = java.util.Calendar.getInstance(); int year = Integer.parseInt(args[0].substring(0, 4)); int month = Integer.parseInt(args[0].substring(4)); System.out.println( year + "年" + month + "月"); System.out.println(" 日 月 火 水 木 金 土"); //year,month,1で年月日設定 cal.set(year, month - 1, 1); //月初日が何曜日なのか設定 int startDay = cal.get(java.util.Calendar.DAY_OF_WEEK); int lastDay = cal.getActualMaximum(java.util.Calendar.DATE); if(startDay != 7){ for(int i = 1 ; i < startDay; i++ ){ System.out.print(" "); } } int day = 1; for(int i = startDay; i <= 7; i++) { if(day < 10){ System.out.print(" "); } System.out.print(" "+ day); day ++; } System.out.println(""); for(int j = 1; j < 7; j++){ for(int k = 0; k < 7; k++){ if(day <= lastDay){ if(day < 10){ System.out.print(" "); } System.out.print(" "+ day); day ++; } } System.out.println(""); } }
}
回答3件
あなたの回答
tips
プレビュー