javaでプログラムを作成しました。
教本を見ながらやってみたのですが、うまくいきません。
import java.util.Scanner;
import java.util.Calendar;
class Cale {
public static void main(String[] args) {
Scanner stdin = new Scanner(System.in);
//年を入力 int year = stdin.nextInt(); //月を入力 int month = stdin.nextInt()-1; //曜日 System.out.println(" 日 月 火 水 木 金 土"); //Calendarインスタンスを作成 Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); //入力された年 cal.set(Calendar.MONTH, month); //入力された月 cal.set(Calendar.DATE, 1); //カレンダーを1日から始める //1日の週の表示 //DAY_OF_WEEKは週の何日目かを表す for (int i = 0; i < 7; i++) { System.out.print(" "); } //他の日付の出力 while (month == cal.get(Calendar.MONTH)) { System.out.print(" " + cal.get(Calendar.DATE) + " "); if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.print("\n"); } //一日加算する cal.add(Calendar.DATE, 1); } }
}
標準入力から年月を入力して、カレンダーを作成するプログラムです。
しかし、日付部分が曜日部分とずれてしまいます。
どこを修正すれば良いでしょうか。
また、多くを教本に頼ってしまったために、自分で作成したにもかかわらずなぜそうなるかわからない部分があります。
while、if文の中身の意味やその他の部分について、解説をしていただけると助かります。
回答3件
あなたの回答
tips
プレビュー