Chinaunix

标题: 求一个整型的秒数变成年月日时分秒格式的算法 [打印本页]

作者: gangzh12345    时间: 2004-04-23 12:56
标题: 求一个整型的秒数变成年月日时分秒格式的算法
需要对时间进行处理,将一个整型的秒数转换成年月日时分秒格式,大家有现成的程序就给贴一个,谢谢!
作者: FH    时间: 2004-04-23 13:13
标题: 求一个整型的秒数变成年月日时分秒格式的算法
自己不会做么?
作者: li2002    时间: 2004-04-23 13:42
标题: 求一个整型的秒数变成年月日时分秒格式的算法
0秒是?年?月?日?时?分?
作者: lenovo    时间: 2004-04-23 14:31
标题: 求一个整型的秒数变成年月日时分秒格式的算法
man localtime
作者: carol1980    时间: 2004-04-23 14:38
标题: 求一个整型的秒数变成年月日时分秒格式的算法
楼主好像是要自己写一个转换算法?
作者: growup    时间: 2004-04-23 14:39
标题: 求一个整型的秒数变成年月日时分秒格式的算法
0秒是1970-01-01 00:00:00
#include <stdio.h>;
#include <time.h>;

main()
{
        struct tm l_tm;
        time_t l_time = 0;
        gmtime_r(&l_time, &l_tm);
        printf("%04d-%02d-%02d %02d:%02d:%02d",
                l_tm.tm_year+1900,l_tm.tm_mon+1,l_tm.tm_mday,
                l_tm.tm_hour,l_tm.tm_min,l_tm.tm_sec);
}
作者: anman_zhou    时间: 2013-03-05 08:59
看这个:
/*
* Convert seconds since 01-01-1970 00:00:00 to Gregorian date.
*/
void rtc_time_to_tm(unsigned long time, struct rtc_time *tm)
{
        unsigned int month, year;
        int days;

        days = time / 86400;
        time -= (unsigned int) days * 86400;

        /* day of the week, 1970-01-01 was a Thursday */
        tm->tm_wday = (days + 4) % 7;

        year = 1970 + days / 365;
        days -= (year - 1970) * 365
                + LEAPS_THRU_END_OF(year - 1)
                - LEAPS_THRU_END_OF(1970 - 1);
        if (days < 0) {
                year -= 1;
                days += 365 + is_leap_year(year);
        }
        tm->tm_year = year - 1900;
        tm->tm_yday = days + 1;

        for (month = 0; month < 11; month++) {
                int newdays;

                newdays = days - rtc_month_days(month, year);
                if (newdays < 0)
                        break;
                days = newdays;
        }
        tm->tm_mon = month;
        tm->tm_mday = days + 1;

        tm->tm_hour = time / 3600;
        time -= tm->tm_hour * 3600;
        tm->tm_min = time / 60;
        tm->tm_sec = time - tm->tm_min * 60;

        tm->tm_isdst = 0;
}


作者: windoze    时间: 2013-03-05 11:35
回复 7# anman_zhou

这个程序是错的…………还记得前一阵子闰秒的事么?

切记,年月日是“历法单位”,时分秒是“时间单位”,两者之间没有简单的换算关系,只能用一堆映射规则做类似查表的算法。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2