实现加一秒后,年、月、日、时、分、秒的显示
2016-03-10 09:28
309 查看
//--------------实现加一秒后年月日时分秒的显示---------------- struct _tag_data { unsigned int year; unsigned char month; unsigned char day; unsigned char hour; unsigned char minute; unsigned char second; }; void test_9() { struct _tag_data data1 = {2001,2,28,23,59,59}; struct _tag_data data2 = {0,0,0,0,0,0}; char year[5]; char month[3]; char day[3]; char hour[3]; char minute[3]; char second[3]; puts("please input year :"); gets(year); puts("please input month :"); gets(month); puts("please input day :"); gets(day); puts("please input hour :"); gets(hour); puts("please input minute :"); gets(minute); puts("please input second :"); gets(second); data1.year = atoi(year); data1.month = atoi(month); data1.day = atoi(day); data1.hour = atoi(hour); data1.minute = atoi(minute); data1.second = atoi(second); //输入数据合法性检查 if((data1.year<=0)||(data1.year>9999)) //Year:1~9999 { return ; } if((data1.month<=0)||(data1.month>=13)) //Month:1~12 { return ; } if(data1.year%400==0) //闰年29天 { if((data1.day<=0)||(data1.day>=30)) //闰年2月有29天:1-29 { return ; } } else if((data1.year%100!=0)||(data1.year%4==0)) { if((data1.day<=0)||(data1.day>=30)) //闰年2月有29天:1-29 { return ; } } else if(data1.year%4!=0) //平年 { if((data1.month==1)||(data1.month==3)||(data1.month==5)||(data1.month==7)||(data1.month==8)||(data1.month==10)||(data1.month==12)) //31天 { if((data1.day<=0)||(data1.day>=32)) { return; } } else if((data1.month==4)||(data1.month==6)||(data1.month==9)||(data1.month==11)) //30天 { if((data1.day<=0)||(data1.day>=31)) { return ; } } } if((data1.hour<0)||(data1.hour>=24)) //Hour:0~23 { return ; } if((data1.minute<0)||(data1.minute>=61)) //Minute:0~59 { return ; } if((data1.second<0)||(data1.second>=61)) //Second:0~59 { return ; } //加 1 second 操作 data2.second = data1.second+1; if(data2.second >= 60) { data2.minute += 1; data2.second = 0; } data2.minute += data1.minute; if(data2.minute >= 60) { data2.hour += 1; data2.minute = 0; } data2.hour += data1.hour; if(data2.hour >=24) { data2.day +=1; data2.hour = 0; } data2.day += data1.day; if((data1.month==1)||(data1.month==3)||(data1.month==5)||(data1.month==7)||(data1.month==12)) { if(data2.day >= 32) { data2.month += 1; data2.day = 1; } } else if((data1.month==4)||(data1.month==6)||(data1.month==9)||(data1.month==11)) { if(data2.day >= 31) { data2.month += 1; data2.day = 1; } } else if(data1.month==2) { //平、闰年判断 if(data1.year%400==0) // 闰年 29天 { if(data2.day >= 30) { data2.month += 1; data2.day = 1; } } else if((data1.year%100 != 0)&&(data1.year%4 == 0)) // 闰年 29天 { if(data2.day >= 30) { data2.month += 1; data2.day = 1; } } else if(data1.year%4 != 0) //平年 28 { if(data2.day >= 29) { data2.month += 1; data2.day = 1; } } } //------ data2.month += data1.month; if(data2.month>=13) { data2.year+=1; data2.month = 1; } data2.year += data1.year; //------show data and time ------ printf("Current data & time is :"); printf("%d/",data1.year); printf("%d/",data1.month); printf("%d,",data1.day); printf("%d:",data1.hour); printf("%d:",data1.minute); printf("%d.\n",data1.second); printf("next second's data & time is :"); printf("%d/",data2.year); printf("%d/",data2.month); printf("%d,",data2.day); printf("%d:",data2.hour); printf("%d:",data2.minute); printf("%d.\n",data2.second); }
相关文章推荐
- 【.Net码农】C# 启动EXE文件及带启动参数EXE
- 第一次上机实验-1
- UpdateFeature
- 第一次试验-2
- 如何配置PL/SQL连接数据库
- CRMEasy知识库访问权限
- Ajax-JQuery处理jsonarray
- CentOS 配置防火墙操作实例
- Linux 的cp命令
- Mac录制屏幕
- 第一次试验实验报告
- 随机选择
- 方法调用方法的委托小例子
- linux管道可以多重使用
- Linux实现ftp账号同时访问两个目录方法
- 小试循环
- 第二周上机实践项目——项目3-小试循环
- 第二周项目3-小试循环
- STM32出现HardFault_Handler 原因及处理方法整理
- python-opencv颜色提取分割