编写一个函数,要求输入年月日时分秒,输出下一个时间


From: http://guchonglin-6.blog.163.com/blog/static/5752753120100714324689/


//关键在于,一不要越界,二判断闰年并且二月是29天,之后是if语句嵌套判断
#include<iostream>
using namespace std;

int resetime(int &year,int &month,int &day,int &hour,int &minute,int &second)
{
     int dayofmonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
     if(year%400==0||year%100!=0&&year%4==0)
     {
     dayofmonth[1]=29;
     }
     else dayofmonth[1]=28;
     cout<<"二月"<<dayofmonth[1]<<endl;
     //唯独秒是0~60,因为不存在进位使之因为60而为0
     if(year<0||month<0||month>12||day<1||day>dayofmonth[month-    1]||hour<0||hour>23||minute<0||minute>59||second<0||second>60) return 0;
    
     second+=1;
     //判断中需要的是判断年月日是否超出某个范围,而小时,分钟和秒钟则需要则判断是否>=60进位,其实一般都是用=60判断,很少用大于进行判断。即区别在于按整进位还是越界进位。
     //如果输入秒是60本身,则输入本身就有问题

     if(second>=60)
     {
         second=0;
         minute+=1;
         if(minute>=60)
         {
             minute=0;
             hour+=1;
             if(hour>=24)
             {
                 hour=0;
                 day+=1;
                 if(day>dayofmonth[month-1])
                 {day=1;
                  month+=1;
                  if(month>12)
                  {month=1;
                  year+=1;
                  }
                 }
             }
         }
        
     }
     cout<<year<<" "<<month<<" "<<day<<" "<<hour<<" "<<minute<<" "<<second<<endl;
     return 0;
}



int main()
{
    int year=2008,month=12,day=31,hour=23,minute=59,second=60;
    resetime(year,month,day,hour,minute,second);  
    system("pause");
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值