把秒数转天数,怎么转换成日期 C++

把秒数转天数,怎样转换成日期 C++
我从客户的一个表格里读取日期,结果2003-10-28,2003-10-29日分别变成了37922,37923,应该是1900年1月1日到两个日期的天数。我怎么把他们转变回去呢?希望大神们看清楚在回帖,不要答非所问。

------解决方案--------------------
C/C++ code

#include <stdio.h>
#include <time.h>

void day2date(int days)
{
    time_t time1;
    struct tm* tminfo;

    time(&time1);
    tminfo = localtime(&time1);
    tminfo->tm_isdst = 0;
    tminfo->tm_year = 0;
    tminfo->tm_mon = 0;
    tminfo->tm_mday = days;
    mktime(tminfo);

    printf("Date: %04d-%02d-%02d\n", tminfo->tm_year + 1900, tminfo->tm_mon + 1, tminfo->tm_mday);
}

int main(int argc, char* argv[])
{
    day2date(37922);
    day2date(37923);

    return 0;
}

------解决方案--------------------
简单写了一个:

C/C++ code

#include <stdio.h>
#include <time.h>

void GetDay(int days,int &month,int&mDay,bool bLeap)
{
    int dayCount[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    if (bLeap)
        dayCount[1]++;
    for (int i = 0 ;i<12;i++)
    {
        if (days<=dayCount[i])
        {
            mDay = days;
            return;
        }
        else
        {
            month++;
            days-=dayCount[i];
        }

    }
    return ;

}
bool isLeapYear(int year)
{
    if (0==year%400)
        return true;
    if ((0==year%4) && (0!=year%100))
        return true;
    return false;
}

void day2date(int days)
{
    int nYear = 1900;
    int month =0;
    int mDay =0;
    int totalDays =365;
    while (1)
    {
        if (isLeapYear(nYear))
            totalDays=366;
        else
            totalDays=365;
        if (days <= totalDays )
            break;

        days-=totalDays;
        nYear++;
    }
    GetDay(days,month,mDay,isLeapYear(nYear));
    printf("Date: %04d-%02d-%02d\n", nYear, month+1, mDay);
}

int main(int argc, char* argv[])
{
    day2date(37922);
    day2date(37923);

    getchar();
    return 0;
}

------解决方案--------------------
探讨
为什么你的代码tm->hour = 8?
应该为0吧。