正文

计算日期2008-12-07 13:19:00

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

分享到:

// 给定一个天数,查询该天之后的日期//例如//当前日期是 2008 11 10 则5050天后是 2022 9 8 #include <iostream> using namespace std; class DAY{private: int y; int m; int d; int days[12]; public: DAY() {  cout<<"请输入当前日期"<<endl;  cout <<"year"<<endl;  cin >> y;  cout << "mouth"<<endl;  cin >>m;  cout << "day"<<endl;  cin >> d;   int i;   for( i = 1 ; i <= 12 ; i++)  {   switch(i)   {    case 2:    days[i-1] = isLeapYear() ? 29:28; //设置2月天数    break;    case 4:   case 6:   case 9:   case 11:    days[i-1] = 30;    break;    default :    days[i-1] = 31;   }  } }  void show() {  cout <<"year:"<<y<<endl;  cout <<"mouth:"<<m<<endl;  cout <<"day:"<<d<<endl; }  int judge_day(int mouth) {  return days[mouth-1]; }  void calculate(int increase) {  if(d + increase <= days[m-1])   d += increase;  else  {   increase -= days[m-1] - d;   m++;    if(m>12)     {    //if m is greater than 12 , and increase is less than days[m-1]    //,then the following while statement will not be executed,    //so must reset m and year++     m = 1;    y++;   }    while(increase -days[m-1] >0)   {    increase -= days[m-1];    m++;     if(m > 12)    {     y++;     m = 1;      days[1] = isLeapYear() ? 29 : 28;    }   }    d = increase;  } }  bool isLeapYear() {  return ( y%4 == 0 && y%100 != 0 ) || (y%400 == 0); }}; int main(){ DAY test; int increase;  test.show();  cout <<"请输入天数,以查询该天之后的日期"<<endl; cin >> increase;  test.calculate(increase); cout <<"\n"<<increase<<"天以后是:"<<endl; test.show();  return 0;}

阅读(2149) | 评论(2)


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

评论

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