该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
例如输入当前时间2006年12月20日19时17分59秒,计算后输出时间是2006年12月20日19时18分00秒。
>>程序要求:
>>程序应该可以运行:通过控制台输入数据,输出数据通过printf给出;
>>程序结构明了、逻辑清晰;
>>请考虑闰年、月份(大小)等逻辑;
>>程序功能完整;
******************************************************************************************/
#include
int main()
{
int month_Day[12]={31,28,31,30,31,30,31,31,30,31,30,31};//建立一个包含一年中各月天数的数组
int year=0;
int month=0;
int day=0;
int house=0;
int min=0;
int second=0;
printf("请输入当前时间,按年月日时分秒顺序输入:\n");
scanf("%d%d%d%d%d%d",&year,&month,&day,&house,&min,&second);
month_Day[1] += ((0 == year%400)||(0==year%4 && year%100!=0));//当查询年份为闰年时,2月加1天
//判断输入的时间是否正确,各月的天数直接与数组中保存的天数进行比较
if((month>12||month<1) || (day>month_Day[month-1]||day<1) || (house>23||house<0) || (min>59||min<0) || (second>59||second<0))
{
printf("您输入的时间有误,查询失败!");
return -1;
}
second = second+1;//秒钟直接加1
if(60==second)//秒钟加1后等于60则执行该段代码
{
second=0;
min +=1;
if(60==min)
{
min=0;
house += 1;
if(24==house);
{
house=0;
day += 1;
if(day>month_Day[month-1])//直接与数组中的天数比较,因为之前已经确定了该年每月的天数
{
day = 1;
month += 1;
if(month>12)
{
month = 1;
year += 1;
}
}
}
}
}
printf("%d年 %d月 %d日 %d时 %d分 %d秒\n",year,month,day,house,min,second);
return 0;
}