CT im e
CTime 没 有 基 类 。
一 个 CTime 对 象 代 表 一 个 绝 对 的 时 间 和 日 期 。 CTime 类 引 入 了 ANSI time_t 数据 类 型 以 及 其 相 关 的 运 行 时 函 数 , 其 中 包 括 向 或 自 一 个 Gregorian 日 期 和 24 -小时 时 间 的 转 换 功 能 。
CTime 值 是 基 于 世 界 标 准 时 间( UCT )的 , UCT 时 间 等 于 格 林 威 治( Greenwich ) 时 间 ( G M T ) 。 本 地 时 区 是 由 TZ 环 境 变 量 控 制 的 。
当 创 建 一 个 CTime 时 , 将 nDST 参 数 设 置 为 0 表 示 有 效 的 是 标 准 时 间 , 或 将 其设 置 为 大 于 0 表 示 有 效 的 白 天 保 留 时 间 , 将 其 设 置 为 小 于 零 的 值 表 示 由 C 运 行时 库 代 码 来 计 算 有 效 的 是 标 准 时 间 还 是 白 天 保 留 时 间 。 如 果 没 有 设 置 这 个 参数 , 则 它 的 值 是 不 明 确 的 , 而 从 mktime 返 回 的 值 是 不 可 预 知 的 。 如 果 timeptr
指 向 一 个 由 先 前 调 用 asctime, gmtim e,或 localtime 返 回 的 tm 结构,则 tm_isdst
域 包 含 了 适 当 的 值 。
参 见 “ M icrosoft Visual C++ 6.0 参 考 库 ” 的 “ M icrosoft Visual C++ 6.0 运 行 时 参考 库 ”卷 可 以 获 得 有 关 time_t 数 据 类 型 和 CTime 使 用 的 运 行 时 函 数 的 更 多 信 息 。
与 CTime 类 对 应 的 类 是 CTimeSpan 类 , 它 代 表 了 一 段 时 间 间 隔 –– – 两 个 CT im e
对 象 之 间 的 差 值 。
CTime 和 CTimeSpan 类 都 是 不 可 派 生 的 。因 为 没 有 虚 函 数 ,CTime 和 CTimeSpan
对 象 的 大 小 都 正 好 是 四 个 字 节 。 多 数 成 员 函 数 都 是 内 联 函 数 。
有 关 使 用 CTime 的 更 多 信 息 , 参 见 “ Visual C++ 程 序 员 指 南 ” 中 的 文 章 “ 日 期和 时 间 ” , 以 及 “ M icrosoft Visual C++ 6.0 运 行 时 库 参 考 ” 中 的 “ 时 间 管 理 ” 。#include <afx.h>
请 参 阅 运 行 时 函 数 : asctime, _ftime, gmtime, locaItime, strftime, time
CTime 类 成 员
Construction
Ctime 用 各 种 方 法 构 造 一 个 Ctime 对象
GetCurrentTime 创 建 一 个 代 表 当 前 时 间 的 CTime 对 象 ( 静 态 成 员 函
数 )
Extraction
GetTime 返 回 一 个 与 此 CTime 对 象 对 应 的 time_t
GetYear 返 回 此 CTime 对 象 代 表 的 年
GetMonth 返 回 此 CTime 对 象 代 表 的 月 ( 1 至 12 )
GetDay 返 回 此 CTime 对 象 代 表 的 日 ( 1 至 31 )
GetHour 返 回 此 CTime 对 象 代 表 的 小 时 ( 0 至 23 ) GetMinute 返 回 此 CTime 对 象 代 表 的 分 钟 ( 0 至 59 ) GetSecond 返 回 此 CTime 对 象 代 表 的 秒 ( 0 至 59 )
GetDayOfWeek 返 回 此 日 是 星 期 几 ( 1 代 表 星 期 日 , 2 代 表 星 期 一 , 以 此 类 推 )
Conversion
GetGmtTm 根 据 UCT 将 一 个 CTime 对 象 分 解 为 它 的 组 成 部 分
GetLocalTm 根 据 本 地 时 区 时 将 一 个 CTime 对 象 分 解 为 它 的 组
成 部 分
GetAsSystemTime 将 CTime 对 象 中 保 存 的 时 间 信 息 转 换 为 一 个 与
W in32 兼 容 的 SYSTEMTIME 结 构
Format 根 据 本 地 时 区 时 将 一 个 CTime 对 象 转 换 为 一 个 格式 化 字 符 串
FormatGmt 根 据 UCT 将 一 个 CTime 对 象 转 换 为 一 个 格 式 化 字
符 串
Operators
Operator = 赋 一 个 新 的 时 间 值
Operator + - 将 CTime 对 象 加 上 或 减 去 一 个 CTimeSpan 对象Operator +=, -= 将 此 CTime 对 象 加 上 或 减 去 一 个 CTimeSpan 对 象Operator ==, <, etc. 比 较 两 个 绝 对 时 间
Archive/Dump
operator<< 向 一 个 CArchive 或 CDumpContext 输 出 一 个 CTime
对 象
operator>> 从 CArchive 输 入 一 个 CTime 对 象
成 员 函 数
CTime::CTime
CTime( );
CTime( const CTime& timeSrc ); CTime( time_t time );
CTime( int nYea r, int nMonth , int nDay , int nHour , int nMin , int nSec , int nDST = - 1 );
CTime( WORD wDosDate , W O R D wDosTim e, int nDST = -1 ); CTime( const SYSTEMTIME& sysTim e, int nDST = -1 ); CTime( const FILETIME& fileTime , int nDST = -1 );
参 数
timeSrc
表 示 一 个 已 经 存 在 的 CTime 对 象 。
time
表 示 一 个 时 间 值 。
nYear,nMonth, nDay, nHour, nMin, nSec
表 示 要 拷 贝 到 新 的 CTime 对 象 中 去 的 日 期 和 时 间 值 。
n DST
表 明 有 效 的 是 否 是 daylight saving tim e。 可 以 是 下 列 三 个 值 中 的 某 一 个 :
-
nDST 被 设 置 为 0 表 示 起 作 用 的 是 标 准 时 间 。
-
nDST 被 设 置 为 一 个 大 于 0 的 值 表 示 起 作 用 的 是 daylight
saving tim e。
-
nDST 被 设 置 为 一 个 小 于 0 的 值 表 示 要 自 动 计 算 起 作 用
的 是 标 准 时 间还是 daylight saving tim e。
wDosDate, wDosTime
要 被 转 换 为 一 个 日 期 /时 间 值 并 被 拷 贝 到 新 的 CTime 对 象 中 去 的 MSDOS
日 期 和 时 间 。
sysTime
要 被 转 换 为 一 个 日 期 / 时 间 值 并 被 拷 贝 到 新 的 CTime 对 象 中 去 的
SYSTEMTIME 结 构 。
fileTime
要 被 转 换 为 一 个 日 期 /时 间 值 并 被 拷 贝 到 新 的 CTime 对 象 中 去 的 FILETIME
结 构 。
说 明
所 有 这 些 构 造 函 数 都 创 建 一 个 新 的 CTime 对 象 , 并 用 指 定 的 基 于 当 前 时 区 的 绝对 时 间 值 来 初 始 化 这 个 对 象 。
下 面 是 对 每 一 个 构 造 函 数 的 描 述 :
- CTime( ); 构 造 一 个 没 有 初 始 化 的 CTime 对 象 。 这 个 构 造
函 数 允 许 你 定 义
CTime 对 象 数 组 。 在 使 用 此 对 象 之 前 , 你 应 该 用 有 效 的 时 间 来 初 始 化 这 个
数 组 。
-
CTime( const CTime& ); 从 另 一 个 CTime 值 构 造 一 个 CTime 对 象
。
-
CTime( time_t ); 从 一 个 time_t 类 型 构 造 一 个 CTime 对 象 。
-
CTime( int, int, etc. ); 从 本 地 时 间 成 分 构 造 一 个 CTime 对
象 , 每 一 个 时 间成 分 被 约 束 在 下 列 范 围 :
Component Range
NYear 1970 – – 2038*
NMonth 1 – – 1 2
NDay 1 – – 31
NHour 没 有 约 束
NMin 没 有 约 束
NSec 没 有 约 束
* 最 大 的 日 期 限 是 1/18/2038 。 更 宽 的 日 期 范 围 , 参 见 COleDateTim e。
这 个 构 造 函 数 进 行 到 UTC 的 相 应 转 换 。 如 果 一 个 或 多 个 年 , 月 , 或 日 成 分 超
出 了 范 围 , 则 Microsoft 基 础 类 库 的 调 试 版 会 给 出 断 言 。 在 调 用 之 前 由 你 负 责检 验 参 数 。
- CTime( WORD, WORD ); 根 据 指 定 的 MSDOS 日 期 和 时 间 构 造 一 个
CTime
对 象 。
- CTime( const SYSTEMTIME& ); 根 据 一 个 SYSTEMTIME 结 构 构 造 一 个
CTime 对 象 。
- CTime( const FILETIME& ); 根 据 一 个 FILETIME 结 构 构 造 一 个
CTime 对象 。你 最 好 不 要 直 接 使 用 CTime FILETIME 初 始 化 。如 果 你 使 用 一 个 CTime 对 象 来 操 纵 一 个 文 件 , 则 CFile::GetStatus 通 过 使 用 一 个 用 FILETIME 结 构初 始 化 的 CTime 对 象 来 为 你 获 取 该 文 件 的 时 间 标 记 。
有 关 time_t 数 据 类 型 的 更 多 信 息 , 参 见 “ Microsoft Visual C++ 6.0 运 行 库 参 考 ” 中 的 时 间 函 数 。
结 构 。
更 多 的 信 息 , 参 见 W in32 SDK 文 档 中 的 M S D O S 日 期 和 时 间 项 。
示 例
// CTime::CTime 示例
time_t osBinaryTime; // C 运行时时间 ( 在 <time.h> 中定义 ) time( &osBinaryTime ) ; // 从操作系统中获取当前时间CTime time1; // 空的 CTime. (0 是不合法的时间值 .) CTime time2 = time1; // 拷贝构造函数
CTime time3( osBinaryTime ); // 根据 C 运行时时间构造 CTime CTime time4( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
请 参 阅 CTime::GetTime, GetCurrentTime, operator =
CTime::Format
CString Format( LPCTSTR pFormat ) const;
返 回 值
返 回 一 个 包 含 了 格 式 化 时 间 的 CString。
参 数
pFormat
一 个 类 似 于 printf 格 式 化 字 符 串 的 格 式 化 字 符 串 。前 面 有 一 个 百 分 号( % ) 标 记 的 格 式 化 代 码 , 被 相 应 的 CTime 成 分 替 换 。 格 式 化 字 符 串 中 的 其 它字 符 被 不 作 变 动 地 拷 贝 到 返 回 字 符 串 中 。 参 见 运 行 时 函 数 strftime 可 以 获得 详 细 的 信 息 。 Format 的 格 式 化 代 码 的 值 和 意 义 如 下 所 示 :
-
% D 此 CTime 中 的 总 天 数 。
-
% H 当 前 天 的 小 时 。
-
% M 当 前 小 时 中 的 分 钟 。
-
%S 当 前 分 钟 中 的 秒 。
-
% % 百 分 号 。
nFormatID
用 来 表 示 这 个 格 式 的 字 符 串 的 ID 。
说 明
此 成 员 函 数 用 来 创 建 一 个 日 期 / 时 间 值 的 格 式 化 表 达 式 。 如 果 此 CTime 对 象 的状 态 是 空 , 则 返 回 值 是 一 个 空 字 符 串 。 如 果 CTime 对 象 的 状 态 是 无 效 , 则 返 回值 是 一 个 空 字 符 串 。
示 例
// CTime::Format 和 CTime::FormatGmt 的示例
CTime t( 1999, 3, 19, 22, 15, 0 );
// 10:15PM March 19, 1999
CString s = t.Format( "%A, %B %d, %Y" ); ASSERT( s == "Friday, March 19, 1999" );
请 参 阅 CTime::FormatGmt
CTime::FormatGmt
CString FormatGmt( LPCTSTR pFormat ) const; C String FormatGmt( UINT nFormatID ) const;
返 回 值
一 个 包 含 格 式 化 时 间 的 CString 。
参 数
pFormat
一 个 类 似 于 printf 格 式 化 字 符 串 的 格 式 化 字 符 串 。 细 节 参 见 运 行 时 函 数
strftim e。
nFormatID
用 来 表 示 这 个 格 式 的 字 符 串 的 ID 。
说 明
此 成 员 函 数 用 来 生 成 一 个 对 应 于 这 个 CTime 对 象 的 格 式 化 字 符 串 。 这 个 时 间 值没 有 被 转 换 , 因 此 是 反 映 UTC 的 。
请 参 阅 CTime::Format
CTime::GetAsSystemTime
BOOL GetAsSystemTime( SYSTEMTIME& timeDest ) const;
返 回 值
如 果 成 功 则 返 回 非 零 值 ; 否 则 返 回 0 。
参 数
timeDest
是 一 个 对 SYSTEMTIME 结 构 的 引 用 , 该 结 构 要 被 转 换 为 一 个 日 期 /时 间值 并 被 拷 贝 到 新 的 CTime 对 象 中 。
说 明
此 成 员 函 数 用 来 将 保 存 在 CTime 对 象 中 的 时 间 信 息 转 换 为 一 个 W in32 兼 容 的SYSTEMTIME 结 构 。 GetAsSystemTime 将 结 果 时 间 保 存 在 引 用 的 timeDest 对象 中 。 由 这 个 函 数 初 始 化 的 SYSTEMTIME 数 据 结 构 把 它 的 w M illiseconds 成 员设 置 为 零 。
CTime::GetCurrentTime
static CTime PASCAL GetCurrentTime( );
说 明
此 成 员 函 数 返 回 一 个 代 表 当 前 时 间 的 CTime 对 象 。
示 例
// CTime::GetCurrentTime 示例
CTime t = CTime::GetCurrentTime();
CTime::GetDay int GetDay( ) const; 说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 范 围 在 1 – – 31 之 间 的 该 月 的 天 。 这 个 函 数 调 用
GetLocalTm ,该 函 数 使 用 了 一 个 内 部 的 、静 态 分 配 的 缓 冲 区 。调 用 其 它 的 CTime
成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
示 例
// CTime::GetDay, CTime::GetMonth, 和 CTime::GetYear 的示例CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999 ASSERT( t.GetDay() == 19 );
ASSERT( t.GetMonth() == 3 ); ASSERT( t.GetYear() == 1999 );
请 参 阅 CTime::GetDagOfWeek
CTime::GetDayOf W eek
int GetDayOfWeek( ) const;
说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 该 星 期 的 天 ; 1 就 是 星 期 日 , 2 就 是 星 期 一 , ...,
7 就 是 星 期 六 。 这 个 函 数 调 用 GetLocalTm , 该 函 数 使 用 了 一 个 内 部 的 , 静 态 分配 的 缓 冲 区 。 调 用 其 它 的 CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
CTime::GetGmtTm
struct tm* GetGmtTm( struct tm* ptm = NULL ) const;
返 回 值
返 回 一 个 指 向 已 填 好 的 struct tm 的 指 针 , struct tm 是 在 包 含 文 件 TIME.H 中定义 的 。 该 结 构 的 成 员 和 值 如 下 所 示 :
-
tm_sec 秒
-
tm_min 分 钟
-
tm_hour 小 时 ( 0 – – 23 )
-
tm_mday 月 中 的 日 ( 1 – – 31 )
-
tm_mon 月 ( 0 - 11 ; 一 月 = 0 )
-
tm_year 年 ( 实 际 的 年 减 1900 的 差 )
-
tm_wday 星 期 几 ( 1 - 7 ; 星 期 日 = 1 )
-
tm_yday 年 中 的 日 ( 0 - 365 ; 一 月 一 日 = 0 )
-
tm_isdst 总 是 0
注 意 struct tm 中 的 年 是 在 范 围 70 至 138 之 间 的 ; 在 CTime 中 , 年 的范 围 是 1970 到 2038 ( 包 含 2038 ) 。
ptm
指 向 一 个 将 用 来 接 收 实 际 数 据 的 缓 冲 区 。 如 果 这 个 指 针 是 NULL , 则 使用 一 个 内 部 的 , 静 态 分 配 的 缓 冲 区 。 调 用 其 它 的 CTime 成 员 函 数 将 导 致此 缓 冲 区 中 的 数 据 被 改 写 。
说 明
此 成 员 函 数 用 来 获 取 一 个 包 含 在 此 CTime 对 象 中 所 含 的 时 间 分 解 struct tm 。
GetGmtTm 返 回 UTC 。
这 个 函 数 调 用 GetLocalTm , 该 函 数 使 用 了 一 个 内 部 的 、 静 态 分 配 的 缓 冲 区 。 调用 其 它 的 CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
参 见 GetLocalTm 的 示 例 。
CTime::GetHour int GetHour( ) const; 说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 范 围 在 0 至 23 之 间 的 小 时 。 这 个 函 数 调 用GetLocalTm ,该 函 数 使 用 了 一 个 内 部 的 、静 态 分 配 的 缓 冲 区 。调 用 其 它 的 CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
示 例
// CTime::GetHour, CTime::GetMinute, 和 CTime::GetSecond 的示例
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
ASSERT( t.GetSecond() == 0 ); ASSERT( t.GetMinute() == 15 ); ASSERT( t.GetHour() == 22 );
CTime::GetLocalTm
struct tm* GetLocalTm( struct tm* ptm = NULL ) const;
返 回 值
返 回 一 个 指 向 已 填 好 的 struct tm 的 指 针 , struct tm 是 在 包 含 文 件 TIME.H 中定义 的 。 关 于 该 结 构 的 成 员 安 排 , 参 见 GetGmtTm 。
参 数
ptm
指 向 一 个 将 用 来 接 收 实 际 数 据 的 缓 冲 区 。 如 果 这 个 指 针 是 NULL , 则 使
用 一 个 内 部 的 、 静 态 分 配 的 缓 冲 区 。 调 用 其 它 的 CTime 成 员 函 数 将 导 致此 缓 冲 区 中 数 据 被 改 写 。
说 明
此 成 员 函 数 用 来 获 取 一 个 包 含 此 CTime 对 象 的 分 解 后 的 各 个 成 分 的 struct tm 。
GetLocalTm
返 回 本 地 数 据 。
示 例
// CTime::GetLocalTm 示例
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
struct tm* osTime; // 指向一个包含数据元素的指针。
osTime = t.GetLocalTm( NULL );
ASSERT( osTime->tm_mon == 2 ); // Note zero-based month!
CTime::GetMinute int GetMinute( ) const; 说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 范 围 在 0 至 59 之 间 的 分 钟 。 这 个 函 数 调 用GetLocalTm ,该 函 数 使 用 了 一 个 内 部 的 、静 态 分 配 的 缓 冲 区 。调 用 其 它 的 CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
CTime::GetMonth int GetMonth( ) const; 说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 范 围 在 1 至 12 之 间 的 月 ( 1 = 一 月 ) 。 这 个 函 数
调 用 GetLocalTm , 该 函 数 使 用 了 一 个 内 部 的 、 静 态 分 配 的 缓 冲 区 。 调 用 其 它 的
CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
示 例
参 见 GetDay 的 示 例 。
CTime::GetSecond int GetSecond( ) const; 说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 范 围 在 0 至 59 之 间 的 秒 。 这 个 函 数 调 用GetLocalTm ,该 函 数 使 用 了 一 个 内 部 的 、静 态 分 配 的 缓 冲 区 。调 用 其 它 的 CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
CTime::GetTime time_t GetTime( ) const; 说 明
此 成 员 函 数 返 回 一 个 给 定 CTime 对 象 的 time_t 值 。
示 例
// CTime::GetTime 示例
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
time_t osBinaryTime = t.GetTime(); // time_t 在 <time.h> 中定义
printf( "time_t = %ld\n", osBinaryTime );
请 参 阅 CTime::CTime
CTime::GetYear
int GetYear( ) const;
说 明
此 成 员 函 数 根 据 本 地 时 间 返 回 范 围 在 1970 年 1 月 1 日 至 2038 年 1 月 18 日 之间 的 年 。 这 个 函 数 调 用 GetLocalTm , 该 函 数 使 用 了 一 个 内 部 的 , 静 态 分 配 的 缓冲 区 。 调 用 其 它 的 CTime 成 员 函 数 会 导 致 这 个 缓 冲 区 中 的 数 据 被 覆 盖 。
示 例
参 见 GetDay 的 示 例 。
请 参 阅 CTime::CTime
操 作 符
CTime::operator =
const CTime& operator =( const CTime& timeSrc ); const CTime& operator =( time_t t );
说 明
这 些 重 载 的 赋 值 操 作 符 将 源 时 间 拷 贝 到 此 CTime 对 象 中 。
保 存 在 一 个 CTime 对 象 中 的 内 部 时 间 与 时 区 无 关 。 在 赋 值 操 作 中 不 用 进 行 时 区转 换 。
示 例
// CTime::operator = 示 例
time_t osBinaryTime; // C 运行时时间 ( 在 <time.h> 中定义 ) CTime t1 = osBinaryTime; // Assignment from time_t
CTime t2 = t1; // Assignment from CTime
请 参 阅 CTime::CTime
CTime::operator +, -
CTime operator +( CTimeSpan timeSpan ) const; CTime operator - CTimeSpan timeSpan ) const; CTimeSpan operator - CTime time ) const;
说 明
CTime 对 象 表 示 绝 对 时 间 。 CTimeSpan 对 象 表 示 相 对 时 间 。 前 两 个 操 作 符 允 许你 向 或 从 CTime 对 象 中 加 上 或 减 去 一 个 CTimeSpan 对 象 。 第 三 个 操 作 符 允 许你 将 两 个 CTime 对 象 相 减 产 生 一 个 CTimeSpan 对 象 。
// 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.
CTime::operator +=, -=
const CTime& operator +=( CTimeSpan timeSpan ); const CTime& operator ?( CTimeSpan timeSpan );
说 明
这 些 操 作 符 允 许 你 从 此 CTime 对 象 中 加 上 或 减 去 一 个 CTimeSpan 对 象 。
// CTime::operator -= 示例
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
t += CTimeSpan( 0, 1, 0, 0 ); // 1 hour exactly ASSERT( t.GetHour() == 23 );
CTime Comparison Operators
BOOL operator ==( CTime tim e ) const; BOOL operator !=( CTime time ) const; BOOL operator <( CTime time ) const; BOOL operator >( CTime time ) const; BOOL operator <=( CTime tim e ) const; BOOL operator >=( CTime tim e ) const;
说 明
这 些 操 作 符 比 较 两 个 绝 对 时 间 , 如 果 测 试 条 件 为 真 则 返 回 非 零 值 ; 否 则 返 回 0 。
// C time 比较操作符示例
CTime t1 = CTime::GetCurrentTime();
CTime t2 = t1 + CTimeSpan( 0, 1, 0, 0 ); // 1 hour later ASSERT( t1 != t2 );
ASSERT( t1 < t2 );
ASSERT( t1 <= t2 );
CTime::operators <<, >>
friend CDumpContext& AFXAPI operator<<( CDumpContext& dc, CTime time ); friend CArchive& AFXAPI operator<<( CArchive& ar, CTime time );
friend CArchive& AFXAPI operator>>( CArchive& ar, CTime& rtime );
说 明
CTime 插 入 操 作 符 ( << ) 支 持 向 一 个 存 档 中 进 行 诊 断 存 档 和 转 储 。 提 取 操 作 符
( >> ) 支 持 从 一 个 存 档 装 入 。
// CTime::operators <<, >> 示例
CTime t( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999
afxDump << t << "\n"; // Prints 'CTime("Fri Mar 19 22:15:00 1999")'.
extern CArchive ar; if( ar.IsLoading() ) ar >> t;
else
ar << t;
请 参 阅 CArchive, CdumpContext