先日は解答してくださった方、ありがとうございました。
しかしまた同じプログラムで問題点が出てきてしまいました。
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週目は日曜日から1日の前日(先月の末尾)までは空欄で埋める
for (int i = Calendar.SUNDAY; i < cal.get(Calendar.DAY_OF_WEEK); i++) {
System.out.print(" ");
}
//カレンダーが当月の間、表示する(翌月まで進んだら終わり) while (month == cal.get(Calendar.MONTH)) { //2桁に埋めて出力する(1桁と2桁があるとずれてしまうので) System.out.printf(" %2d ", cal.get(Calendar.DATE)); //土曜日の場合には改行する(翌週へ) if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) { System.out.print("\n"); } //一日加算する cal.add(Calendar.DATE, 1); } }
}
これで実行できるのですが、while文の中の、
//2桁に埋めて出力する(1桁と2桁があるとずれてしまうので)
System.out.printf(" %2d ", cal.get(Calendar.DATE));
の部分を、if分をつかって
if(/条件式/){
System.out.print(" " + cal.get(Calender.DATE) + " ");
}else{
System.out.print(" " + cal.get(Calender.DATE) + " ");
}
のように書き換えたいのですが(一桁の時と二桁の時で空白を場合分け)
条件式がうまくいきません。どのようにしたらよいでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。