public Date calculateReturnDate(Date issueDate) {
Date returnDate;
returnDate.Day = 0;
returnDate.Month = 0; //initialise
returnDate.Year = 0;
//months jan, march, may, july, august, october, december ALL 31 DAYS
//1 3 5 7 8 10 12
//months april, june, september, november ALL 30 DAYS
// 4 6 9 11
//months february 28 DAYS
// 2
if (((issueDate.Month == 1) || (issueDate.Month == 3) || (issueDate.Month == 5) || ((issueDate.Month > 6) && (issueDate.Month < 9)) || (issueDate.Month == 10) || (issueDate.Month == 12)) && ((issueDate.Day > 0) && (issueDate.Day <= 31))) {
// IF the month is any month with 31 DAYS... AND the issue date is not greater than month end...
issueDate.Day = issueDate.Day + 5; //then the return date is incremented by 5.
if (issueDate.Day > 31) { //if the new number is invalid
issueDate.Day = (issueDate.Day - 31); //then rollover..
issueDate.Month = (issueDate.Month + 1); //..and make sure to increase the month too
if (issueDate.Month > 12) { //if we have created an illegal year..
issueDate.Month = 1; //..rollover
issueDate.Year = (issueDate.Year + 1); //..and increment the year
}
}
returnDate = issueDate; //sets return value
// returnDate = (issueDate.Day = (issueDate.Day + 5) );
// (issueDate.Day = (issueDate.Day + 5) );
} else if (((issueDate.Month == 4) || (issueDate.Month == 6) || (issueDate.Month == 9) || (issueDate.Month == 11)) && ((issueDate.Day > 0) && (issueDate.Day <= 30))) {
issueDate.Day = issueDate.Day + 5; //then the return date is incremented by 5.
if (issueDate.Day > 30) { //if the new number is invalid
issueDate.Day = (issueDate.Day - 30); //then rollover..
issueDate.Month = (issueDate.Month + 1); //..and make sure to increase the month too
} //a year check is NOT needed here, since we are only looking at months up to 11
returnDate = issueDate; //sets return value
} else if ((issueDate.Month == 2) && ((issueDate.Day > 0) && (issueDate.Day <=28))) {
issueDate.Day = issueDate.Day + 5;
returnDate = issueDate;
} else if ((issueDate.Day > 0) && (issueDate.Day <= 31)) {
issueDate.Day = issueDate.Day + 5;
returnDate = issueDate;
} else {
System.out.println("Invalid issue day specified! (Less than 1 or greater than 31)");
returnDate.Day = -1;
returnDate.Month = -1;
returnDate.Year = -1;
}
}