vs环境下的 时间差值

c标准库的是不行,1970年之前虽int变量可设负值,但运算不行。

//#include<time.h>
//
//int GetTimeSpan()
//{
//    long ttt = timezone;
//    __time64_t timeGet;//1383625542
//    _time64(&timeGet);
//   
//    __time64_t timeComp(333);
//
//    double dVvv = _difftime64(timeGet, timeComp);
//    DATE_YEARMONTH
//    return RETURN_OK;
//}

#include<ATLComTime.h>

int GetTimeSpan()
{
    COleDateTime dtObj;
    dtObj = COleDateTime::GetCurrentTime();

    DATE dtT = dtObj.m_dt;

    int iDay = dtObj.GetDay();

    //string strData = dtObj.Format();//Format()有些重载,如需要可选用
    wstring wstrData = dtObj.Format();// .GetBuffer();

   
    dtObj.SetDate(900, 12, 30);//设置之后只有日期部分,格式化字符串也是
    wstrData = dtObj.Format().GetBuffer();
    dtObj.SetDateTime(900, 12, 30, 13, 44, 22);
    wstrData = dtObj.Format().GetBuffer();
    dtObj.SetTime(0, 0, 10);//设置之后只有时间部分,格式化字符串也是
    wstrData = dtObj.Format().GetBuffer();

    unsigned int index = 0;
    while (true)
    {
        dtObj.SetDate(index++, 12, 30);
//        wstring wstrDatattt = (LPWSTR)dtObj.Format()/*.GetBuffer()*/;
    }

    return RETURN_OK;
}

上面这种是可以的,编译过的,但,唉,又要用ATL的,虽然说也比网上找的应该不会差,但是,,没源码吧,以后再看看吧,

这里的DATE对于其实为double,且可以为负值,值每增加1代表增加1天,

原文地址:https://www.cnblogs.com/xiarl/p/3408756.html