首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将纪元时间转换为“真实”日期/时间

将纪元时间转换为“真实”日期/时间
EN

Stack Overflow用户
提问于 2009-11-07 14:15:04
回答 7查看 76.2K关注 0票数 27

我想要做的是将一个纪元时间(自1970年1月1日午夜以来的秒数)转换为“实时”时间(m/d/y h:m:s)

到目前为止,我有以下算法,我觉得有点难看:

代码语言:javascript
运行
复制
void DateTime::splitTicks(time_t time) {
    seconds = time % 60;
    time /= 60;
    minutes = time % 60;
    time /= 60;
    hours = time % 24;
    time /= 24;

    year = DateTime::reduceDaysToYear(time);
    month = DateTime::reduceDaysToMonths(time,year);
    day = int(time);
}

int DateTime::reduceDaysToYear(time_t &days) {
    int year;
    for (year=1970;days>daysInYear(year);year++) {
        days -= daysInYear(year);
    }
    return year;
}

int DateTime::reduceDaysToMonths(time_t &days,int year) {
    int month;
    for (month=0;days>daysInMonth(month,year);month++)
        days -= daysInMonth(month,year);
    return month;
}

您可以假定成员secondsminuteshoursmonthdayyear都存在。

使用for循环来修改原始时间感觉有点不对劲,我想知道是否有更好的解决方案。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1692184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档