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天,