现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

CString COleDateTime CTime

2012-09-07 06:24 工业·编程 ⁄ 共 2078字 ⁄ 字号 暂无评论

1. ************************************************

COleDateTime time;
time.ParseDateTime("2008-02-29");

if (time.GetStatus() == 1) //有效

{}

else                //无效

{}

2. ***********************************************

COleDateTime t;
// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);
// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);
// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);

3.*****************************************************

CString和CTime的转换
CTime 转到 CString

CTime timebirth;
m_timeBirth.GetTime(timebirth); //m_timeBirth为CDateTimeCtrl,此处为了让timeBirth赋上需要的值
CString strBirth=timebirth.Format(_T("%Y-%m-%d"));

4. ******************************************************

CString 转到 CTime

COleDateTime tm;
tm.ParseDateTime(strBirth); //strBirth为前面的%Y-%m-%d 00:00:00的格式时间字符串
SYSTEMTIME st;
tm.GetAsSystemTime(st);
CTime ct(st);
m_timeBirth.SetTime(&ct); //m_timeBirth为CDateTimeCtrl,数据从数据库中读取

CTime COleDateTime的常用操作和比较
1) 获取当前时间。
CTime time;
time = CTime::GetCurrentTime();
2) 获取时间元素。
int year = time.GetYear() ;
int month = time.GetMonth();
int day = time.GetDay();
int hour = time.GetHour();
int minute = time.GetMinute();
int second = time.GetSecond();
int DayOfWeek = time.GetDayOfWeek() ;
3) 获取时间间隔。
CTimeSpan timespan(0,0,1,0); // days,hours,minutes,seconds
timespan = CTime::GetCurrentTime() - time;
4) 把时间转换为字符串。
CString sDate,sTime,sElapsed Time ;
sDate = time.Format("%m/%d/%y"); //ex: 12/10/98
sTime = time.Format("%H:%M:%S"); //ex: 9:12:02
sElapsed Time = timespan.Format("%D:%H:%M:%S");
// %D is total elapsed days
要想知道更多的时间格式,参见M F C文档中的strftime。
使用COleDateTime类
1) 获得一年中的某一天。
COleDate Time datetime;
datetime = COleDateTime::GetCurrentTime();
int DayOfYear = datetime.GetDayOfYear();
2) 从文本串中读取时间。
COleDate Time datetime;
datetime.ParseDateTime("12:12:23 27 January 93");
说明。
   CTime和COleDateTime具有几乎同样的功能。然而, COleDateTime允许用户获得一年
中的某一天(创建Julian日期的一种好方法),以及分析一个时间文本串。
  与CTime相比, COleDateTime的优点在于它支持DWORD变量。COleDateTime使用的
位数是双浮点的两倍,既然CTime只是简单地计算从1970年1月1日之后经过的秒数,
所以到了2 0 3 7年它将达到4 2 9 4 9 6 7 2 9 5,从而不能再使用。相反,
COleDateTime是一个
浮点数,它表示是从1 9 0 0年1 2月3 0号之后的天数(小时是天的小数部分),几千年之内不会溢出。

给我留言

留言无头像?