1.初始化
m_begintime=CTime(2004,1,1,0,0,0,-1);//參數依次為year,month,day,hour,minite,second
m_endtime =CTime::GetCurrentTime();//當前時間
2.日期比較
CTimeSpan span;

span=time1-time2;

得到兩時間的間隔.
可以取得span.GetHours().等
3.access數據庫查詢
使用DateDiff()函數,具體參照access幫助
CString timesql;
timesql.Format(" Where DateDiff('d',%s,'%s')<=0","日期",m_begintime.Format("%Y-%m-%d"));
4讀取日期字段(odbc)
CDBVariant var;
recset.GetFieldValue(i,var);
s.Format("%d-%d-%d",(var.m_pdate)->year,(var.m_pdate)->month,
(var.m_pdate)->day);
5.CTime轉換為CString
例:
m_begintime.Format("%Y-%m-%d");//2004-10-03
6.CString轉換為CTime
//s="2004-10-5"
int first=s.Find('-');
int second=s.Find('-',first+1);

int year=atoi(s.Left(4));
int month=atoi(s.Mid(first+1,second-first+1));
int day=atoi(s.Mid(second+1,s.GetLength()-second-1));
CTime temp(year,month,day,0,0,0);

7.判斷CString是否表示的正確日期格式
//判斷是否為2004-01-13 ch 可代表其他分隔符
bool IsDate(CString str,char ch)


{
if(str.IsEmpty()) return false;
//日期分段
int first=str.Find(ch);
int second=str.Find(ch,first+1);

int year=atoi(str.Left(4));
int month=atoi(str.Mid(first+1,second-first+1));
int day=atoi(str.Mid(second+1,str.GetLength()-second-1));
//判斷
if (year < 2000 || year >= 2010)

{
return false;
}
else if (month< 1 || month >12)

{
return false;
}
else if (day< 1 || day > 31)

{
return false;
}
else if (month == 4 || month == 6 || month == 9 || month == 11)

{
if(day > 30)

{
return false;
}
else

{
return true;
}
}
else if (month == '2')

{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)

{
if (day>29)

{
return false;
}
else

{
return true;
}
}
else if (day>28)

{
return false;
}
return true;
}
else

{
return true;
}

}

