您的位置:首页 > 其它

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

2012-11-04 13:53 483 查看
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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐