如何在VC中加减日期及 CTime COleDateTime的常用操作和比较

    技术2026-05-11  3

    如何在VC中加减日期及 CTime COleDateTime的常用操作和比较 [转贴 2008-10-31 15:51:28]     字号:

    如何在VC中加减日期 使用CTime类,如:    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.

    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,secondstimespan = CTime::GetCurrentTime() - time;4) 把时间转换为字符串。CString sDate,sTime,sElapsed Time ;sDate = time.Format("%m/%d/%y"); //ex: 12/10/98sTime = time.Format("%H:%M:%S"); //ex: 9:12:02sElapsed 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号之后的天数(小时是天的小数部分),几千年之内不会溢出。

    最新回复(0)