#include<stdio.h>
/*
功能:任意给出一时间,计算下一秒;
原型:void CalcNextSecond(char* pCurrentTime,char* pNextTime);
输入参数:char* pCurrentTime,格式:2013/12/31 23:59:59
输出参数:char* pNextTime,格式:2014/01/01 00:00:00
*/
void CalcNextSecond(char* pCurrentTime,char* pNextTime){
int Time[6]={0};
int i=0;
//从字符串中提取整数
while(*pCurrentTime!='\0'){
if(*pCurrentTime>='0'&&*pCurrentTime<='9'){
Time[i]=Time[i]*10 + *pCurrentTime-'0';
}else{
i++;
}
pCurrentTime++;
}
//下一秒时间处理
Time[5]++;
if(Time[5]==60){
Time[5]=0;
Time[4]++;
}
if(Time[4]==60){
Time[4]=0;
Time[3]++;
}
if(Time[3]==24){
Time[3]=0;
Time[2]++;
}
if(Time[1]==1||Time[1]==3||Time[1]==5||Time[1]==7||Time[1]==8||Time[1]==10||Time[1]==12){
if(Time[2]==32){
Time[2]=1;
Time[1]++;
}
}else if(Time[1]==4||Time[1]==6||Time[1]==9||Time[1]==11){
if(Time[2]==31){
Time[2]=1;
Time[1]++;
}
}else{
if(Time[0]%4==0||Time[0]%400==0){
if(Time[2]==30){
Time[2]=1;
Time[1]++;
}
}else{
if(Time[2]==29){
Time[2]=1;
Time[1]++;
}
}
}
if(Time[1]==13){
Time[1]=1;
Time[0]++;
}
//sprintf字符串连接
sprintf(pNextTime,"%d/%.2d/%.2d %.2d:%.2d:%.2d\0",Time[0],Time[1],Time[2],Time[3],Time[4],Time[5]);
}
int main()
{
char p[100];
CalcNextSecond("2013/12/31 23:59:59",p);
printf("%s\n",p);
return 0;
}
OJ演练--计算下一秒
最新推荐文章于 2023-11-10 09:27:20 发布