您的位置:首页 > 其它

实现加一秒后,年、月、日、时、分、秒的显示

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: