CTime t1,t2;
t1.GetTime();
t2.GetTime();
t2-t1?????
t1.GetTime();
t2.GetTime();
t2-t1?????
解决方案 »
- MFC小问题
- 怎么创建带标题栏的可停靠的窗口?
- 在dlg中想调用View中的一个函数,怎么编译通不过阿?
- 请问各位在对话框上怎么识别是文本框,还是按钮,或者comobox等等!
- 我在XP下的VC程序的头文件中都有下面3句话,是什么意思啊?#if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000
- 如何判断我的程序已经运行,不运行多个!谢谢
- 高分,分不够再给!!!!!!!!!!!!!!!
- 杭州小女子初学MFC,感脚很有兴趣,但是问题很多
- m_wndView中无m_clrColors 成员
- 超级大难题,我能给的最高分了
- 这里真好,高手进来!
- 一个链接错误,程序和DirectX有关
CTimeSpan ts1( 3, 1, 5, 12 ); // 3 days, 1 hour, 5 min, and 12 sec
CTimeSpan ts2( 100 ); // 100 seconds
CTimeSpan ts3 = ts1 + ts2;
ASSERT( ts3.GetSeconds() == 52 ); // 6 mins, 52 secs// example for CTime::operator +, -
CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999
CTimeSpan ts = t2 - t1; // Subtract 2 CTimes
ASSERT( ts.GetTotalSeconds() == 86400L );
ASSERT( ( t1 + ts ) == t2 ); // Add a CTimeSpan to a CTime.
ASSERT( ( t2 - ts ) == t1 ); // Subtract a CTimeSpan from a Ctime.
//dtmfnct.h
//char=8bt
//int=32bt
//pure c ++ code
#ifndef dtmfnctH
#define dtmfnctH
#include <math.h>
//------------------------------------------------------------------------
int __fastcall strTOdate(char *);
int __fastcall ymdTOdate(int, int, int);
int __fastcall dateTOymd(int &, int &, int &, int);
//--------//--------//--------//--------//--------//--------
int __fastcall strTOtime(char *);
int __fastcall hmsTOtime(int, int, int);
int __fastcall timeTOhms(int &,int &,int &, int);
//--------//--------//--------//--------//--------//--------
int __fastcall IsLeapYear(int);
int __fastcall MonthMaxDay(int, int);
int __fastcall MonthTtlDay(int, int);
int * __fastcall MonthMaxDayTable(int);
int * __fastcall MonthTtlDayTable(int);
//------------------------------------------------------------------------
//字串形式的日期(不包括时间)转换为数值形式,
//例子: "2000_01_30" -> 730148
// "2000_09_45" -> -1(error)
int __fastcall strTOdate(char * vstr)
{
int i,y,m,d;
//
i = y = m = d = 0;
//
for(;vstr[i]!=0;i++)
{
if(vstr[i]>='0' && vstr[i]<='9')
y = y * 10 + (vstr[i]-'0');
else
break;
}
//
while(vstr[i]!=0 &&(vstr[i]<'0' || vstr[i]>'9')) i++;
//
for(;vstr[i]!=0;i++)
{
if(vstr[i]>='0' && vstr[i]<='9')
m = m * 10 + (vstr[i]-'0');
else
break;
}
//
while(vstr[i]!=0 &&(vstr[i]<'0' || vstr[i]>'9')) i++;
//
for(;vstr[i]!=0;i++)
{
if(vstr[i]>='0' && vstr[i]<='9')
d = d * 10 + (vstr[i]-'0');
else
break;
}
//
return(ymdTOdate(y,m,d));
}
//年/月/日的数值转换为数值日期
//例子: 0001_01_01 -> 0
// 2300_90_08 -> -1
//此函数经过 0001_01_01 -- 32767_12_31 的测试.
int __fastcall ymdTOdate(int vy, int vm, int vd)
{
if(vy<1 || vy>32767 || vm<1 || vm>12 || vd<1 || vd>MonthMaxDay(vy,vm))
return(-1);
//
vd += MonthTtlDay(vy,vm)-1;
vy --;
return((vy*365 + vy/4 - vy/100 + vy/400)+vd);
} //数值日期转换为年/月/日的数值
//数值日期就是从0001_01_01开始计算的天数,启始数值为 0
//此函数经过 0001_01_01 -- 32767_12_31 的测试.
int __fastcall dateTOymd(int& ry, int& rm, int& rd, int vd)
{
if(vd<0)
{
ry = 0;
rm = 0;
rd = 0;
return(0);
}
//--------//--------
ry = vd / 365.2425;
vd -= ry*365 + ry/4 - ry/100 + ry/400;
//
if(IsLeapYear(++ry))
rm = 366;
else
rm = 365;
//
if(vd>=rm)
{
vd -= rm;
ry ++;
}
//--------//--------
rm = vd / 30.436875 + 1 ;
vd -= MonthTtlDay(ry,rm);
if(++vd<=0)
{
vd += MonthMaxDay(ry,rm);
rm --;
}
else if(vd>MonthMaxDay(ry,rm))
{
vd -= MonthMaxDay(ry,rm);
rm ++;
}
//--------//--------
rd = vd;
//
return(1);
}//--------//--------//--------//--------//--------//--------
int __fastcall strTOtime(char *vstr)
{
int i,h,m,s;
//
i = h = m = s = 0;
//
for(;vstr[i]!=0;i++)
{
if(vstr[i]>='0' && vstr[i]<='9')
h = h * 10 + (vstr[i]-'0');
else
break;
}
//
while(vstr[i]!=0 &&(vstr[i]<'0' || vstr[i]>'9')) i ++;
//
for(;vstr[i]!=0;i++)
{
if(vstr[i]>='0' && vstr[i]<='9')
m = m * 10 + (vstr[i]-'0');
else
break;
}
//
while(vstr[i]!=0 &&(vstr[i]<'0' || vstr[i]>'9')) i ++;
//
for(;vstr[i]!=0;i++)
{
if(vstr[i]>='0' && vstr[i]<='9')
s = s * 10 + (vstr[i]-'0');
else
break;
}
//
return(hmsTOtime(h,m,s));
}//
int __fastcall hmsTOtime(int vh, int vm, int vs)
{
if((vh=(((vh*60 + vm)*60+vs)*1000)%86400000)<0)
vh += 86400000;
return(vh);
}//
int __fastcall timeTOhms(int& rh, int& rm, int& rs, int vt)
{
if((vt%=86400000)<0)
vt +=86400000;
//
rh = vt / 3600000 ;
rm = (vt % 3600000)/60000;
rs = (vt % 60000 )/1000 ;
//
return(vt%1000);
}//--------//--------//--------//--------//--------//--------
//以下各个函数没有安全检测功能,须慎重.
int __fastcall IsLeapYear(int vy)
{
return(((vy%4)==0) && (((vy%100)!=0)||((vy%400)==0)));
}int __fastcall MonthMaxDay(int vy, int vm)
{
return(MonthMaxDayTable(vy)[vm-1]);
}int __fastcall MonthTtlDay(int vy, int vm)
{
return(MonthTtlDayTable(vy)[vm-1]);
}//
int* __fastcall MonthMaxDayTable(int vy)
{
static int mmd0[12]={31,28,31,30,31,30,31,31,30,31,30,31};
static int mmd1[12]={31,29,31,30,31,30,31,31,30,31,30,31};
//
if(IsLeapYear(vy))
return(mmd1);
else
return(mmd0);
}int* __fastcall MonthTtlDayTable(int vy)
{
static int mtd0[13]={0,31,59,90,120,151,181,212,243,273,304,334,365};
static int mtd1[13]={0,31,60,91,121,152,182,213,244,274,305,335,366};
//
if(IsLeapYear(vy))
return(mtd1);
else
return(mtd0);
}
#endif