编写一个函数,要求输入年月日时分秒,输出下一个时间
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;
}
//关键在于,一不要越界,二判断闰年并且二月是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;
}
相关文章推荐
- 编写函数,要求输入年月日时分秒,输出该时间的下一秒
- 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0
- H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒
- 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒。
- 编写一个函数,要求输入年月日时分秒, 输出该年月日时分秒的下一秒
- H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒
- JavaScript 编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。
- 定义一个结构体变量(包括年、月、日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天。注意闰年问题。(数组)
- Java编写一个截取字符串的函数,输入一个为字符串和字节数,输出按字节截取的字符串。要求不能出现截半的情况
- 编写一个函数func(),将此函数的输入参数(int型)逆序输出显示,如54321 –> 12345,要求使用递归,并且函数体代码不超过8行
- 定义一个结构体变量(包括年、月、日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天。注意闰年问题。(switch语句)
- 10、 java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 编写程序:从键盘上输入若干个整数(以输入-1作为结束标识),输出这些数中的最大值和最小值,要求编写一个函数实现最大值和最小值的求取。
- 10、 java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 面试题之java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 要求不能出现截半的情况
- 5-16: 输入10个数,要求编写一个排序函数,能够实现按绝对值从大到小排序。在主函数中输入10个数,输出排序后的10个数
- 编写函数,其功能是:将一个数字字符串转换为一个整数(不得调用C语言中提供的将字符串转换成整数的函数。)要求在主函数中输入该字符串并输出转换后的整数的值。
- c语言:有一函数:当x&lt;0,y=-1;x=0,y=0;x&gt;0,y=1;编一程序,输入一个x值,要求输出相应的y值。
- 题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,
- 编写一函数,由实参数来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述的结果