作为大学作业的一部分,我们获得了一个Date类,并被告知要进行一些修改。坚持使用nextDay()方法,以及为什么它不会实现。我有一个测试类,并了解它是如何工作的所以它只是代码片段。任何帮助和/或解释赞赏
public class Date
{
private int month; // 1-12
private int day; // 1-31 based on month
private int year; // any year
private static final int[] daysPerMonth = // days in each month
{ 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//constructor: call checkMonth to confirm proper value for month
//call checkDay to confirm proper value for day
public Date( int theDay, int theMonth, int theYear )
{
month = checkMonth( theMonth );//validate moth
year = theYear; // could validate year
day = checkDay( theDay ); //validate day
System.out.printf(
"Date object constructor for date %s\n", this );
}// end Date constructor
//method to return day
public int getDay()
{
return day;
}// end method getDay
// method to return month
public int getMonth()
{
return month;
}//end method getMonth
//method to get year
public int getYear()
{
return year;
}//end method getYear
//utility method to confirm proper month value
private int checkMonth( int testMonth )
{
if ( testMonth > 0 && testMonth <= 12 ) //validate month
return testMonth;
else // month is invalid
throw new IllegalArgumentException(" month must be 1-12" );
}// end method check month
// utilty method to confirm proper day value based on month and year
private int checkDay( int testDay )
{
// check if day in range for month
if ( testDay > 0 && testDay <= daysPerMonth[ month ] )
return testDay;
if ( month == 2 && testDay == 29 && ( year % 400 == 0 ||
( year % 4 == 0 && year % 100 != 0 ) ) )
return testDay;
throw new IllegalArgumentException(
"day out of range for the specified month and year" );
}// end method check day
public String toString()
{
return String.format( "%d-%d-%d", day, month, year );
}// end method toString
public void setDate ( int d, int m, int y )
{
setDay( d );
setMonth( m );
setYear( y );
}
public void setDay( int d )
{
// check if day in range for month
if ( d > 0 && d <= daysPerMonth[ month ] )
day = d;
if ( month == 2 && d == 29 && ( year % 400 == 0 ||
( year % 4 == 0 && year % 100 != 0 ) ) )
day = d;
throw new IllegalArgumentException(
"day out of range for the specified month and year" );
}
public void setMonth( int m )
{
if ( m> 0 && m <= 12 ) //validate month
month = m;
else // month is invalid
throw new IllegalArgumentException(" month must be 1-12" );
}
public void setYear( int y )
{
year = y;
}
public String toString2()
{
return String.format( "%2d - %2d - %4d ", getDay(), getMonth(), getYear() );
}
public void nextDay()
{
getDay();
day = day++;
return day;
//if( d = daysPerMonth[ month ] )
// return day = 1 && month++;
//else if( m = 2 && d = 28 )
// return day++ && m= 2;
//else if( m = 12 && d = 31 )
// return m = 1 && d = 1 ;
}
}
//结束课程日期
答案 0 :(得分:0)
我知道你已经编写了这段代码,但有更好的方法可以做到这一点。
.dialog-box2