用户输入年份并将其存储在year
. 并且调用了一个方法来计算并返回将在一周中的同一天的下一年。月份和日期不会仅更改年份。在这种情况下,月份为 Jan,日期为 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;他们都在星期三跌倒。
编辑:更改循环类型。