Пользователь вводит год и хранится в year
. И называется метод, который вычисляет и возвращает следующий год, который упадет в тот же день недели. Месяц и день не меняются только год. В этом случае месяц Ян и день 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; они оба падают в среду.
Редактировать: изменить тип петли.
Обратите внимание, что у вас есть бесконечный цикл. –
рассмотрите использование цикла while, поскольку вы не знаете, сколько итераций потребуется для получения вашего ответа. –
@SotiriosDelimanolis Я пробовал цикл while с логическим значением вроде 'while (! Valid)', но я также получил бы бесконечный цикл. Я знал, что цикл for бесконечен, должен был упомянуть об этом, мой плохой. – PeterLion