ユーザーが年を入力すると、 に格納されyear
ます。そして、同じ曜日になる次の年を計算して返すメソッドが呼び出されます。月日は年だけ変わらない。この場合、月は 1 月で、日は 1 です。
/**
* @param theYear the year given
*/
public int yearSync(int theYear)
{
int month = 1;
int day = 1;
int year = theYear;
int aMonth = 1;
int aDay = 1;
int aYear = year++;
Date d1 = new Date(month, day, year);
Date d2 = new Date(aMonth, aDay, aYear);
boolean valid = false;
while (!valid)
{
if(d1.getDayOfWeek().equals(d2.getDayOfWeek)))//another class provided is used to
{ //calc what day of the week it is
System.out.println(aYear); //prints the year
} //that falls on the same week day as the input year
else
{
aYear++;
}
}
return aYear;
}
答えを求めるのではなく、自分の論理の誤りがどこにあるのか、このような問題に取り組むときに思考プロセスを変えるために何ができるかを知りたいだけです。混乱がある場合に備えて、例として 2014 を入力した場合、返される年は 2020 になります。どちらも水曜日になります。
編集:ループタイプを変更しました。