fatal error c1010




for (int l = 0, m = 1000; l <ys.length(); ++l, m /= 10)
{
y += m * (ys[l] - 48);
}
setYear(y);
}

void Date::setDate( int mm, intdd, intyy )
{

month = ( mm >= 1 && mm <= 12 ) ? mm : 1;
year = ( yy>= 1900 &&yy<= 2100 ) ? yy : 1900;

// test for a leap year
if ( month == 2 &&leapYear( year ) )
day = ( dd>= 1 &&dd<= 29 ) ? dd : 1;
else
day = ( dd>= 1 &&dd<= days[ month ] ) ? dd : 1;
} // end function setDate

void Date::setMonth(int m)
{
month = (m >= 1 && m <= 12 ) ? m : 1;
}



void Date::setDay(int d)
{
if ( month == 2 &&leapYear( year ) )
day = ( d >= 1 && d <= 29 ) ? d : 1;
else day = ( d >= 1 && d <= days[ month ] ) ? d : 1;
return;
}

void Date::setYear(int y)
{
year = ( y >= 1900 && y <= 2100 ) ? y : 1900;
}

Date & Date::operator--(){ helpdencrement(); return *this;}
Date Date::operator--(int){Date temp = *this; helpdencrement(); return temp; }

// overloaded prefix increment operator
Date &Date::operator++()
{
helpIncrement(); // increment date
return *this; // reference return to create an lvalue
} // end function operator++

// overloaded postfix increment operator; note that the
// dummy integer parameter does not have a parameter name
Date Date::operator++( int )
{
Date temp = *this; // hold current state of object
helpIncrement();

// return unincremented, saved, temporary object
return temp; // value return; not a reference return
} // end function operator++

// add specified number of days to date
const Date &Date::operator+=( intadditionalDays )
{
for ( int i = 0; i <additionalDays; i++ )
helpIncrement();

return *this; // enables cascading
} // end function operator+=

// if the year is a leap year, return true; otherwise, return false
bool Date::leapYear( inttestYear ) const
{
if ( testYear % 400 == 0 ||
( testYear % 100 != 0 &&testYear % 4 == 0 ) )
returntrue; // a leap year
else
returnfalse; // not a leap year
} // end function leapYear

// determine whether the day is the last day of the month
bool Date::endOfMonth( inttestDay ) const
{
if ( month == 2 &&leapYear( year ) )
returntestDay == 29; // last day of Feb. in leap year
else
returntestDay == days[ month ];
} // end function endOfMonth

// function to help increment the date
void Date::helpIncrement()
{
// day is not end of month
if ( !endOfMonth( day ) )
day++; // increment day
else
if ( month < 12 ) // day is end of month and month < 12
{
month++; // increment month
day = 1; // first day of new month
} // end if
else// last day of year
{
year++; // increment year
month = 1; // first month of new year
day = 1; // first day of new month
} // end else
} // end function helpIncrement

void Date::helpdencrement()
{
//if ( !beginofMonth( day ) )
if (day != 1)
day--;
else
if (month > 1)
{
month--;
day = lastdayofmonth();
}
else
{
year--;
month = 12;
day = lastdayofmonth();
}
}



int Date::lastdayofmonth()
{
switch(month)
{
case January: return 31; break; case February: if (leapYear(year)) return 29; elsereturn 28; break; case March: return 31; break; case April: return 30; break;
case May: return 31; break; case June: return 30; break; case July: return 31; break; case August: return 31; break; case September: return 30; break; case October: return 31; break;
case November: return 30; break; case December: return 31; break; default: return 0; break;
}
}

void Date::addmonth()
{
++month;
}

void Date::addyear()
{
++year;
}
// overloaded output operator
ostream&operator<<( ostream&output, const Date &d )
{

charmsg[] = "", msg1[] = "January", msg2[] = "February", msg3[] = "March", msg4[] = "April", msg5[] = "May", msg6[] = "June",
msg7[] = "July", msg8[] = "August", msg9[] = "September", msg10[] = "October", msg11[] = "November", msg12[] = "December";

//static char *monthName[13] = {msg, msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9, msg10, msg11, msg12};
string monthName[13] = {msg, msg1, msg2, msg3, msg4, msg5, msg6, msg7, msg8, msg9, msg10, msg11, msg12};

output <<monthName[ d.month ] <<' '<<d.day<<", "<<d.year;
return output; // enables cascading
} // end function operator<<


constbool Date::operator == (const Date &rhs)
{
if (month == rhs.month&& day == rhs.day&& year == rhs.year)
returntrue;
elsereturnfalse;
}

constbool Date::operator !=(const Date &rhs)
{
if ((*this == rhs))
returnfalse;
elsereturntrue;
}

constbool Date::operator< (const Date &rhs)
{
if (year >= rhs.year)
returnfalse;
if (month >= rhs.month)
returnfalse;
if (day <rhs.day)
returntrue;
}

constbool Date::operator> (const Date &rhs)
{
if (year >rhs.year)
returntrue;
if (year <rhs.year)
returnfalse;
if (month >rhs.month)
returntrue;
if (month <rhs.month)
returnfalse;
if (day >rhs.day)
returntrue;
elsereturnfalse;
}

constbool Date::operator<= (const Date &rhs)
{
if (year >= rhs.year)
returnfalse;
if (month >= rhs.month)
returnfalse;
if (day <= rhs.day)
returntrue;
}

constbool Date::operator>= (const Date &rhs)
{
if (year <= rhs.year)
returnfalse;
if (month <= rhs.month)
returnfalse;
if (day >= rhs.day)
returntrue;

}

int Date::getdate(int& m, int& d, int& y)
{
chardateStr [9];
_strdate( dateStr); chartempdate[7] = {dateStr[0], dateStr[1], dateStr[3], dateStr[4], dateStr[6], dateStr[7] };
int DD[6]; int D = atoi(tempdate);
for (int i = 0; i < 6; ++i)
DD[i] = int(tempdate[i]) - 48;
year = 10 * DD[4] + DD[5];
month = 10 * DD[0] + DD[1];
day = 10 * DD[2] + DD[3];
year += 2000;
m = month; d = day; y = year;
return D;
}

int Date::getday()
{
return day;
}

int Date::getmonth()
{
return month;
}

int Date::getyear()
{
return year;
}
#endif

Topic archived. No new replies allowed.