main.c文件:
1、计算现在的时间和过去的时间的差值:
#include "stdio.h"
unsigned char *fun(unsigned char *History_time, unsigned char * now_time)
{
int seconds = 0;
int mins = 0;
int hours = 0;
unsigned char *time;
if(now_time[0] >= History_time[0])
{
hours = now_time[0] - History_time[0];
}
if(now_time[1] > History_time[1])
{
mins = now_time[1] - History_time[1];
}
else if(now_time[1] < History_time[1])
{
mins = 60 - History_time[1] + now_time[1];
hours--;
if(mins>60)
{
mins = mins -60;
}
}
if(now_time[2] > History_time[2])
{
seconds = now_time[2] - History_time[2];
}
else if(now_time[2] < History_time[2])
{
seconds = 60 - History_time[2] + now_time[2];
mins--;
if(seconds>60)
{
seconds = seconds -60;
}
}
time[0] = hours;
time[1] = mins;
time[2] = seconds;
//printf("%d %d %d \r\n",hours,mins,seconds);
//return(seconds+mins*60+hours*60*60);
return time;
}
int main(void)
{
unsigned char* a;
unsigned char ht[3] = {12,30,10};
unsigned char nt[3] = {13,20,20};
a = fun(ht,nt);
printf("%d %d %d\r\n",a[0],a[1],a[2]);
}
2、计算距离现在1小时49分钟59之后的时间:
#include "stdio.h"
unsigned char* fun(unsigned char* now_time, unsigned char* later_time)
{
unsigned char* an;
if((now_time[0]+later_time[0])<24)
{
an[0] = now_time[0]+later_time[0];
}
else
{
an[0] = now_time[0]+later_time[0] - 24;
}
if((now_time[1]+later_time[1])<59)
{
an[1] = now_time[1]+later_time[1];
}
else
{
an[1] = now_time[1]+later_time[1] - 60;
an[0]++;
}
if((now_time[2]+later_time[2])<59)
{
an[2] = now_time[2]+later_time[2];
}
else
{
an[2] = now_time[2]+later_time[2] - 60;
an[1]++;
}
printf("函数内%d %d %d\r\n\r\n",an[0], an[1], an[2]);
return an;
}
int main(void)
{
unsigned char an[3] = {12,10,01}; //现在的时间
unsigned char bn[3] = {1,49,59}; //1小时49分钟59之后
unsigned char *cn;
cn = fun(an,bn);
printf("%d %d %d",cn[0], cn[1], cn[2]);
}