mktime64和gmtime64实现

本文介绍了在嵌入式环境中,由于标准库缺少64位时间函数,如何自行实现mktime64和gmtime64。经过在Linux上的测试,这两个函数已验证对1970年至2270年每秒的时间转换准确无误。
摘要由CSDN通过智能技术生成

由于某些嵌入式标准库中的时间函数没有64位版本,所以需要自己实现。

这里的两个函数我在linux上与库函数作了对比测试,遍历了1970到2270的每一秒,结果无误。代码是从网上搜集修改而来,具体出处实在是忘记了,印象中都来源于glic库。

mktime64实现:

/***************************************************************************//**
 * \brief       Convert time struct to UTC seconds.
 * \param       year : [1900, ..., 2018, ...]
 * \param       mon  : [1, 12]
 * \param       day  : [1, 31]
 * \param       hour : [0, 23]
 * \param       min  : [0, 59]
 * \param       sec  : [0, 59]
 * \return      seconds from 1970-1-1 0:0:0
 * \author      glic
 * \note        timezone is ignored
 ******************************************************************************/
long long mktime64 (unsigned int year, unsigned int mon,
    unsigned int day, unsigned int hour,
    unsigned int min, unsigned int sec)
{
    if (0 >= (int) (mon -= 2)) {    /* 1..12 -> 11,12,1..10 */
         mon 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值