/**
* Computes and returns the Date on which Thanksgiving will fall
* in a given year.
*
* NOTE: By law, Thanksgiving is the 4th Thursday in November
*
* @param year the year for which to compute the date of Thanksgiving
* @return the Date of Thanksgiving for the specified year
*/
public Date getThanksgiving(int year)
{
int weekcount = 0 ; // record the amount of weeks that has passed
Date thanksgiving = new Date (11 , 1 , year) ;
while (weekcount < 4)
{
thanksgiving.next(); // add one to date
if (thanksgiving.getDayOfWeek().equals("Thursday"))// check if the day of week is Thursday
{
weekcount++ ; // add one to weekcount
}
if (weekcount == 4)
{
System.out.println(thanksgiving.getLongDate());
}
}
return thanksgiving ;
}
У меня не должно быть этого утверждения println, вместо этого я должен возвращать правильную дату, используя оператор return. Проблема в том, что я получаю эту «Date @ 2f4d3709» в качестве моего вывода. Дата class-- http://users.cis.fiu.edu/~shawg/2210/Date.htmlОператоры возврата не возвращают выходные данные в правильном формате
Непонятно, если он говорит о выходе из 'println' в выдержке кода или' println' (не показан), который выполняется при возврате от данного метода? Если его прежняя «Дата» реализована неправильно или код, как показано, не соответствует времени выполнения. Если это последний, то этот ответ правильный. +1 к вам. – Dev
Извините, я думал, что упомянул о своем полном выходе. Правило println верное, я получаю правильную дату. Ошибка в операторе return. То есть, когда я получаю «Date @ 2f4d3709». Мой вопрос в том, могу ли я исправить оператор return, чтобы я мог получить правильную дату, потому что я не должен получать свой вывод из инструкции println. – Name
Вы можете изменить возвращаемый тип на 'String' и вернуть' thanksgiving.getLongDate() 'вместо этого. Или работайте с объектом 'Date' после его возвращения. – tynn