C语言编写秒数转换成时间戳 UTC时间函数实现

C语言编写秒数转换成时间戳 UTC时间函数实现,第1张

概述本文章向大家介绍C语言编写 秒数转换成时间戳 UTC时间 函数实现,主要包括C语言编写 秒数转换成时间戳 UTC时间 函数实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

单片机中需要转换时间戳,没有现成的函数可以用,为了提高单片机的效率,写了一个,参考如下:

const int Days[12]={31,28,31,30,31};

voID MainWindow::Calc_Time(unsigned long Second_data)

{

unsigned long Year = 1970;

unsigned long Month = 1;

unsigned long Day = 1;

unsigned long Hour = 0;

unsigned long Min = 0;

unsigned long Second = 0;

unsigned int Pass4year;

int hours_per_year;

if(Second_data < 0)

{

Second_data = 0;

}

Second = Second_data%60; //取秒

Second_data /= 60;

Min = Second_data%60; //取分

Second_data /= 60; //余下的小时

//过去有多少个4年,每4年有 1461*24小时

Pass4year = Second_data/(1461*24);

//计算年份

Year = 1970 +Pass4year*4;

//剩下的小时数

Second_data = Second_data %(1461*24);

//校正闰年影响的年份,计算一年中剩下的小时数

for(;;)

{

//一年的hour = 365*24

hours_per_year = 365*24;

//判断闰年

if((((Year%4)==0)&&((Year%100)!=0)) ||((Year%400)==0))

{

hours_per_year +=24;

}

if(Second_data < hours_per_year)

{

break;

}

Year++;

Second_data -= hours_per_year;

}

//小时数

Hour = Second_data%24;

Second_data /= 24; //剩下的天数

Second_data+=1; //天数从1号开始

if((((Year%4)==0)&&((Year%100)!=0)) ||((Year%400)==0))

{

if(Second_data >60)

{

Second_data--;

}

else

{

if(Second_data == 60)

{

Day = 29;

Month = 1;

return;

}

}

}

//计算月日

for(Month = 0;Days[Month]

{

Second_data -= Days[Month];

}

Day = Second_data;

Month = Month+1;

}

总结

以上是内存溢出为你收集整理的C语言编写 秒数转换成时间戳 UTC时间 函数实现全部内容,希望文章能够帮你解决C语言编写 秒数转换成时间戳 UTC时间 函数实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1264932.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存