[转]CTime 使用总结

[转]CTime 使用总结

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;
 }

    

}


你可能感兴趣的:([转]CTime 使用总结)