正文

P258 11.32007-08-22 19:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lhlvc/28757.html

分享到:


P258 11.3  
# include<iostream.h>  

class Date  
{  
 int year; 
 int month; 
 int day; 
public:  
 Date();
 Date(int year,int month,int day);
 void addOneDay(Date &date);
 void setDate(Date &date);
 void displayDate(Date &date);
 int isLeapYear(int year);
}; 
Date::Date() 


Date::Date(int year,int month,int day) 

 this->year=year;
 this->month=month;
 this->day=day;

void Date::addOneDay(Date &date)   
{   
 switch(date.month)  
 {  
 case 1://31天的月份  
 case 3:  
 case 5:  
 case 7:  
 case 8:  
 case 10:  
  if(date.day==31) 
  { 
   date.month+=1;
   date.day=1;
  } 
  else 
   date.day+=1;
  break; 
 case 12://31天的12月可能进入到下一年  
  if(date.day==31) 
  { 
   date.year+=1;
   date.month=1;
   date.day=1;
  } 
  else 
   date.day+=1;
  break; 
 case 4://30天的月份  
 case 6:  
 case 9:  
 case 11:  
  if(date.day==30)  
  {  
   date.month+=1; 
   date.day=1; 
  }  
  else  
   date.day+=1; 
  break;  
 case 2://2月有闰年与平年之分   
  if(isLeapYear(date.year))  
  {  
   if(date.day==29) 
   { 
    date.month+=1;
    date.day=1;
   } 
   else 
    date.day+=1;

  }  
  else  
  {  
   if(date.day==28) 
   { 
    date.month+=1;
    date.day=1;
   } 
   else 
    date.day+=1;
  }  
  break;  

 }

int Date::isLeapYear(int year) 

 //能被4和100整除,但不能被400整除.
 return (year%4==0&&year%100==0)||(year%400==0);

void Date::setDate(Date &date)//注意参数传递 

 int year;
 int month;
 int day;
 cout<<"Please input year:";
 cin>>year;
 cout<<"Please input month:";
 cin>>month; 
 while(month>12) 
 { 
  cout<<"Please input month less than 12:";
  cin>>month;
 } 
 cout<<"Please input day:"; 
 cin>>day; 
 while(day>31) 
 { 
  cout<<"Please input day less than 31:";
  cin>>month;
 } 
 date.year=year; 
 date.month=month; 
 date.day=day; 
}  

void Date::displayDate(Date &date)  
{  
 cout<<date.day<<"/" 
  <<date.month<<"/"
  <<date.year<<endl;
}  
  void main()  
  {  
   Date date1(2000,2,28); 
   date1.addOneDay(date1); 
   Date date2; 
   date2.setDate(date2); 
   date2.displayDate(date2); 
  }

阅读(2519) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册