定义一个满足如下要求的Date类。
1,用下面的格式输出日期;
日、月、年
2,可运行在日期上加一天操作;
3,设置日期。
我的答案如下。结果是-858993460/-858993460/-858993460
                                     Press any key to continue
为什么会出错,如何满足2 3条件的输出。
#include <iostream.h> 
class Date
{ 
public: 
  void Display();   
  void AddOneDay();   
  void SetDay(int y,int m,int d); 
protected:   
 bool Legal(int y, int m, int d);   
 bool IsLeapYear(int y);   
 int year;   
 int month;   
 int day; 
}; 
 
void Date::Display() 
{ 
  cout <<day <<"/" <<month <<"/" <<year <<endl; 
} 
 
void Date::AddOneDay() 
{ 
if(Legal(year,month,day+1))    
   day++; 
else if(Legal(year,month+1,1)) 
    month++,day=1; 
else if(Legal(year+1,1,1)) 
    day=1,month=1,year++; 
} 
 
void Date::SetDay(int y, int m, int d) 
{   
 if(Legal(y,m,d)) 
    day=d, month=m, year=y; 
} 
 
bool Date::Legal(int y, int m, int d) 
{ 
  if(y>9999||y<1||d<1||m<1||m>12)     
   return false;   
  int dayLimit=31; 
  switch(m) 
  case 4: 
  case 6: 
  case 9: 
  case 11: 
   dayLimit--;   
   if(m==2) 
    dayLimit = IsLeapYear(y) ? 29 : 28; 
  return (d>dayLimit)? 
   false : true; 
} 
 
bool Date::IsLeapYear(int y) 
{ 
  return !(y%4)&&(y%100)||!(y%400); 
}
int main()
{
 Date a;
 a.SetDay(10,13,1998);
 a.Display();
 a.AddOneDay();
 

 
	
                                                 VIP会员
VIP会员 购物车
购物车


 私信
                         私信 
                     
					 
					 
					 
					 
					 发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
                    
 已解决
已解决 
                







 
                     
                     
					 
						 
						 
						 
						