C O le DateTimeSpan - 图1

C O le DateTimeSpan - 图2返 回

目 录

C O le DateTimeSpan COleDialog

C O le D ispatchDriver

COleDispatchException C O le DocObjectItem COleDocument COleDropSource COleDropTarget COleException

CO leInsertDialog CO leIPFrame W nd COleDBRecordView COleLinkingDoc COleLinksDialog COleMessageFilter CO leObjectFactory

CO lePasteSpecialDialog COlePropertiesDialog CO lePropertyPage COleResizeBar

CO leSafeArray

COleServerDoc CO leServerItem COleStreamFile

C O leTemplateServer CO leUpdateDialog CO leVariant CPageSetupDialog CPaintDC

CPalette CPen

CPictureHolder CPoint

CPrintDialog CPrintInfo CProgressCtrl CPropExchange CPropertyPage CPropertyPageEx CPropertySheet CPropertySheetEx CPtrArray CPtrList

CReBar CReBarCtrl

CRecentFileList CRecordset CRecordView CRect CRectTracker CResourceException CRgn

C R ichEditCntrItem CRichEditCtrl CRichEditDoc CRichEditView CRuntimeClass

CScrollBar CScrollView CSemaphore CSharedFile CSingleDocTemplate CS ingleLock

CS ize CS liderCtrl

CSocket

CSocketFile CSpinButtonCtrl CSplitter W nd

CStatic CStatusBar CStatusBarCtrl CStdioFile CString CStringArray CStringList CSyncObject CTabCtrl CTime

CT imeSpan CToolBar

C O le DateTimeSpan

COleDateTimeSpan 没 有 基 类 。

  • 个 COleDateTimeSpan 对 象 表 示 一 个 相 对 的 时 间 , 即 一 个 时

    间 段 。

COleDateTimeSpan 以 日 为 单 位 来 保 存 时 间 。

COleDateTimeSpan 类 常 常 与 类 COleDateTime 一 起 使 用 。 COleDateTime 封 装 了OLE 自 动 化 中 的 DATE 数 据 类 型 。 COleDateTime 表 示 绝 对 的 时 间 值 。 所 有 的COleDateTime 计 算 都 涉 及 COleDateTimeSpan 值 。 这 两 个 类 之 间 的 关 系 类 似 于类 CTime 和 类 CTimeSpan 之 间 的 关 系 。

有 关 类 COleDateTime 和 COleDateTimeSpan 的 更 进 一 步 的 信 息 ,可 以 参 考“ V isual C++ 程 序 员 指 南 ” 一 书 中 的 文 章 “ 日 期 与 时 间 : 自 动 化 支 持 ” 。

# include <afxdisp.h>

CO leDateTimeSpan 类 成 员

Constructor

ColeDateTimeSpan 构 造 COleDateTimeSpan 对 象

Attributes

GetStatus

获 取 COleDateTimeSpan

对 象 的 状 态 ( 有 效 性 )

SetStatus

设 置 COleDateTimeSpan

对 象 的 状 态 ( 有 效 性 )

GetDays

返 回 COleDateTimeSpan

对 象 所 表 示 的 时 间 段 的 日 部 分

GetHours

返 回 COleDateTimeSpan

对 象 所 表 示 的 时 间 段 的 小 时 部 分

GetMinutes

返 回 COleDateTimeSpan

对 象 所 表 示 的 时 间 段 的 分 钟 部 分

GetSeconds

返 回 COleDateTimeSpan

对 象 所 表 示 的 时 间 段 的 秒 部 分

GetTotalDays

返 回 COleDateTimeSpan

对 象 所 表 示 的 天 数

GetTotalHours

返 回 COleDateTimeSpan

对 象 所 表 示 的 小 时 数

Attributes

GetTotalMinutes 返 回 COleDateTimeSpan 对 象 所 表 示 的 分 钟 数

GetTotalSeconds 返 回 COleDateTimeSpan 对 象 所 表 示 的 秒 数

Operations

SetDateTimeSpan 设 置 COleDateTimeSpan 对 象 的 值

Format 产 生 一 个 COleDateTimeSpan 对 象 的 格 式 化 字 符 串表 达 式

Operators

操 作 符 double 将 COleDateTimeSpan 的 值 转 换 为 双 精 度 值操 作 符 = 拷 贝 一 个 COleDateTimeSpan 值

操 作 符 + , - 加 、 减 COleDateTimeSpan 值 , 或 改 变

COleDateTimeSpan 值 的 符 号

操 作 符 += , -= 从 一 个 COleDateTimeSpan 值 中 加 、 减 这 个

COleDateTimeSpan 值

操 作 符 == , < , <= 比 较 两 个 COleDateTimeSpan 值

Data Members

m_span 记 录 这 个 COleDateTimeSpan 对 象 所 代 表 的 基 本 的双 精 度 值

m_status 记录 COleDateTimeSpan 对 象 的 状 态

Dump/Archive

操 作 符 << 将 COleDateTimeSpan 值 输 出 到 CArchive 或

CDumpContext

操 作 符 >> 从 CArchive 输 入 一 个 COleDateTimeSpan 对 象

成 员 函 数

CO leDateTimeSpan ::CO leDateTimeSpan

COleDateTimeSpan ();

COleDateTimeSpan (const COleDateTimeSpan & dateSpanSrc ); COleDateTimeSpan (double dblSpanSrc);

COleDateTimeSpan (long lDay s ,int nHours ,int nMin s ,int nSecs );

参 数

dateSpanSrc

要 拷 贝 到 新 的 COleDateTimeSpan 对 象 中 去 的 一 个 已 经 存 在 的

COleDateTimeSpan 对 象 。

dblSpanSrc

要 拷 贝 到 新 的 COleDateTimeSpan 对 象 中 去 的 天 数 。

lDays,nHours,nMins,nSecs

表 示 要 拷 贝 到 新 的 COleDateTimeSpan 对 象 中 去 的 日 期 和 时 间 值 。

说 明

所 有 这 些 构 造 函 数 创 建 的 新 的 COleDateTimeSpan 对 象 都 被 初 始 化 为 指 定 的 值 。下 面 给 出 了 有 关 每 一 个 构 造 函 数 的 简 短 描 述 :

  • COleDateTimeSpan ( ) 构 造 一 个 初 始 值 为 0 的 COleDateTimeSpan

    对 象 。

  • COleDateTimeSpan ( dateSpanSrc ) 根 据 一 个 已 经 存 在 的

    COleDateTimeSpan

对 象 构 造 一 个 新 的 COleDateTimeSpan 对 象 。

  • COleDateTimeSpan ( dblSpanSrc ) 根 据 一 个 浮 点 值 构 造 一 个

COleDateTimeSpan 对 象 。

  • COleDateTimeSpan ( lDays ,nHours ,nMins ,nSecs ) 构 造 一

    个 按 给 定 的 数 字 值初 始 化 的 COleDateTimeSpan 对 象 。

新 的

COleDateTimeSpan 对 象 的 状 态 被 设 置 为 有 效 的 。

有 关

COleDateTimeSpan 值 的 界 限 问 题 的 更 进 一 步 的 信 息 ,参 见“ Visual

C++

序 员 指 南 ” 一 书 中 的 文 章 “ 日 期 和 时 间 : 自 动 化 支 持 ” 。

示 例

COleDateTimeSpan spanOne ( 2.75 ) ; // 2 天 18 小 时

COleDateTimeSpan spanTwo ( 2 , 18 , 0 , 0 ) ; // 2 天 18 小 时

COleDateTimeSpan spanThree ( 3 , -6 , 0 , 0 ) ; // 2 天 18 小 时

请 参 阅 COleDateTimeSpan:: operator = , COleDateTimeSpan:: GetStatu s,

COleDateTimeSpan:: m_span , COleDateTimeSpan:: m_status

CO leDateTimeSpan ::Format

CString Forma t( LPCTSTR pFormat ) const; CString Forma t( UNIT nID ) const;

返 回 值

  • 个 含 有 格 式 化 的 日 期 /时 间 间 隔 值 的 CString 值 。

参 数

pFormat

一 个 代 表 格 式 的 字 符 串 , 类 似 于 printf 中 的 代 表 格 式 的 字 符 串 。 表 示 格式 的 代 码 , 其 前 面 的 百 分 号 ( % ) 由 相 应 的 COleDateTimeSpan 成 分 所 代

替 。 而 表 示 格 式 的 字 符 串 中 的 其 它 字 母 则 原 封 不 动 的 拷 贝 到 返 回 字 符 串中 。 更 多 的 细 节 可 参 见 运 行 时 函 数 strftim e。 在 Format 函 数 中 表 示 格 式的 符 号 的 值 和 含 义 列 表 如 下 :

  • %H 当 前 日 的 小 时 数

  • % M 当 前 小 时 中 的 分 钟 数

  • %S 当 前 分 钟 中 的 秒 数

  • % % 百 分 号

nID

格 式 控 制 字 符 串 的 资 源 ID 。

说 明

调 用 这 些 函 数 可 以 生 成 一 个 有 关 时 间 段 值 的 格 式 化 表 达 式 。 如 果

COleDateTimeSpan 对 象 的 状 态 为 无 效 , 则 返 回 值 为 一 个 空 的 字 符 串 。 如 果 其 状态 为 有 效 的 , 则 返 回 的 是 一 个 由 字 符 串 资 源 IDS_INVALID_DATETIMESPAN 确 定 的 字 符 串 。

有 关 这 个 函 数 的 几 种 形 式 的 简 短 描 述 如 下 所 示 :

Format ( pFormat

这 种 形 式 的 函 数 用 格 式 字 符 串 来 格 式 化 相 应 的 值 , 格 式 字 符 串 中 用 前 置的 百 分 号 ( % ) 来 指 定 表 示 格 式 的 符 号 , 就 象 在 printf 中 一 样 。 该 格 式 字符 串 是 一 个 资 源 。 这 个 字 符 串 的 ID 是 作 为 参 数 传 递 给 该 函 数 的 。

Format ( nID

这 种 形 式 的 函 数 用 格 式 字 符 串 来 格 式 化 相 应 的 值 , 格 式 字 符 串 中 用 前 置的 百 分 号 ( % ) 来 指 定 表 示 格 式 的 符 号 , 就 象 在 printf 中 一 样 。 该 格 式 字符 串 是 一 个 资 源 。 这 个 字 符 串 的 ID 是 作 为 指 针 来 传 递 的 。

有 关 函 数 中 使 用 的 格 式 化 符 号 的 更 多 的 信 息 ,可 以 参 见“ M icrosoft Visual C++ 6.0

运 行 时 间 库 参 考 ” 。

有 关 本 地 ID 值 的 列 表 , 可 参 见 “ W in32 SDK OLE 程 序 员 参 考 ” 一 书 中 的 “ 支持 多 国 语 言 ” 章 节 。

请 参 阅 COleDateTimeSpan::GetStatus

CO leDateTimeSpan::GetDays

long GetDays() const;

返 回 值

日 期 /时 间 段 值 的 日 部 分 。

调 用 这 个 成 员 函 数 可 以 跟 踪 日 期 /时 间 段 值 的 日 部 分 。

这 个 函 数 的 返 回 值 的 范 围 大 致 在 -3,615,000 与 3,615,000 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::GetHours

long GetHours() const;

日 期 /时 间 段 值 的 小 时 部 分 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 日 期 /时 间 段 值 的 小 时 部 分 。这 个 函 数 的 返 回 值 的 范 围 在 -23 与 23 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::GetMinutes

long GetMinutes() const;

返 回 值

日 期 /时 间 段 值 的 分 钟 部 分 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 日 期 /时 间 段 值 的 分 钟 部 分 。这 个 函 数 的 返 回 值 的 范 围 在 -59 与 59 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetSeconds

  • GetTotalDays

  • GettotalHours

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::GetSeconds

long GetSeconds() const;

返 回 值

日 期 /时 间 段 值 的 秒 部 分 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 日 期 /时 间 段 值 的 秒 部 分 。

这 个 函 数 的 返 回 值 的 范 围 大 致 在 -59 与 59 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetMinutes

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::GetStatus DateTimeSpanStatus GetStatus() const; 返 回 值

COleDateTimeSpan 值 的 状 态 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 这 个 COleDateTimeSpan 对 象 的 状 态 ( 有 效 性 ) 。这 个 返 回 值 是 用 DateTimeSpanStatus 枚 举 类 型 定 义 的 , 该 枚 举 类 型 是 在

COleDateTimeSpan 类 中 定 义 的 。

enum DateTimeSpanStatus{ valid = 0,

invalid = 1,

null = 2,

};

下 面 列 出 了 有 关 这 些 状 态 值 的 简 短 描 述 :

  • COleDateTimeSpan::valid 表 示 这 个 COleDateTimeSpan 对 象 是 有 效

    的 。

  • COleDateTimeSpan::invalid 表 示 这 个 COleDateTimeSpan 对 象 是 无

    效 的 , 也 就 是 说 , 这 个 对 象 的 值 有 可 能 是 错 误 的 。

  • COleDateTimeSpan::null 表 示 这 个 COleDateTimeSpan 对 象 是 空 的

    , 也 就是 说 , 没 有 值 被 提 供 给 这 个 对 象 。( 在 数 据 库 中“ null ” 意 味 着“ 没 有 值 ” , 这 与 C++ 的 NULL 相 反 。 )

在 下 面 的 示 例 中 一 个 COleDateTimeSpan 对 象 的 状 态 是 无 效 的 :

  • 该 对 象 在 一 次 算 术 赋 值 操 作 , 即 += 或 -= 中 , 产 生 了 上

    溢 或 者 下 溢 。

  • 一 个 无 效 的 值 被 赋 给 了 这 个 对 象 。

  • 通 过 使 用 SetStatus 将 这 个 对 象 的 状 态 显 式 的 设 置 为 无

    效 。

有 关 其 它 可 以 将 状 态 设 置 为 无 效 的 操 作 的 更 进 一 步 的 信 息 , 参 见

COleDateTimeSpan:: operator+ , -和 COleDateTimeSpan::operator+= , -= 。

有 关 COleDateTimeSpan 值 的 界 限 的 更 进 一 步 的 信 息 , 参 见 “ Visual C++ 程序员 指 南 ” 一 书 中 的 文 章 “ 日 期 与 时 间 : 自 动 化 支 持 ” 。

请 参 阅 COleDateTimeSpan::SetStatus,ColeDateTimeSpan::m_status

CO leDateTimeSpan::GetTotalDays

double GetTotalDays() const;

返 回 值

这 个 日 期 / 时 间 段 值 以 日 为 单 位 。 虽 然 这 个 函 数 的 原 型 是 返 回 一 个 双 精 度 值 , 但是 它 也 常 常 返 回 一 个 整 型 值 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 以 日 为 单 位 表 示 的 日 期 /时 间 段 值 。这 个 函 数 的 返 回 值 的 范 围 大 致 在 -3.65e6 与 3.65e6 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan , ColeDateTimeSpan::operator

CO leDateTimeSpan::GetTotalHours

double GetTotalHours() const;

返 回 值

这 个 日 期 / 时 间 段 值 以 小 时 为 单 位 。 虽 然 这 个 函 数 的 原 型 是 返 回 一 个 双 精 度 值 , 但 是 它 也 常 常 返 回 一 个 整 型 值 。

调 用 这 个 成 员 函 数 可 以 获 取 以 小 时 为 单 位 的 日 期 /时 间 段 值 。这 个 函 数 的 返 回 值 的 范 围 大 致 在 -8.77e7 与 8.77e7 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::GetTotalMinutes

double GetTotalMinutes() const;

这 个 日 期 / 时 间 段 值 以 分 钟 为 单 位 。 虽 然 这 个 函 数 的 原 型 是 返 回 一 个 双 精 度 值 , 但 是 它 也 常 常 返 回 一 个 整 型 值 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 以 分 钟 为 单 位 的 日 期 /时 间 段 值 。这 个 函 数 的 返 回 值 的 范 围 大 致 在 -5.26e9 与 5.26e9 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::GetTotalSeconds

double GetTotalSeconds() const;

返 回 值

这 个 日 期 / 时 间 段 值 以 秒 为 单 位 。 虽 然 这 个 函 数 的 原 型 是 返 回 一 个 双 精 度 值 , 但是 它 也 常 常 返 回 一 个 整 型 值 。

说 明

调 用 这 个 成 员 函 数 可 以 获 取 以 秒 为 单 位 的 日 期 /时 间 段 值 。这 个 函 数 的 返 回 值 的 范 围 大 致 在 -3.16e11 与 3.16e11 之 间 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalD ays

  • GetTotalMinutes

  • GetTotalSeconds

请 参 阅 COleDateTimeSpan::SetDateTimeSpan

CO leDateTimeSpan::SetDateTimeSpan

void SetDateTimeSpan(long lDay s,int nHours ,int nMins ,int nSecs );

参 数

kDays,nHours,nMins,nSecs

表 示 要 被 拷 贝 到 COleDateTimeSpan 对 象 中 去 的 日 期 段 和 时 间 段 值 。

说 明

调 用 这 个 成 员 函 数 可 以 设 置 日 期 /时 间 段 值 。

其 它 用 来 查 询 COleDateTimeSpan 对 象 的 函 数 可 以 参 见 下 面 列 出 的 成 员 函 数 :

  • GetDays

  • GetHours

  • GetMinutes

  • GetSeconds

  • GetTotalDays

  • GetTotalHours

  • GetTotalMinutes

  • GetTotalSeconds

示 例

COleDateTimeSpan spanOne; COleDateTimeSpan spanTwo;

spanOne.SetDateTimeSpan(0,2,45,0); //2 小 时 45 秒

spanTwo.SetDateTimeSpan(0,3,-15,0); //2 小 时 45 秒

请 参 阅 COleDateTimeSpan::GetStatus,COleDateTimeSpan::m_span

CO leDateTimeSpan::SetStatus

void SetStatus(DateTimeSpanStatus nStatu s);

参 数

nStatus

表 示 COleDateTimeSpan 对 象 的 新 的 状 态 值 。

说 明

调 用 这 个 成 员 函 数 可 以 设 置 COleDateTimeSpan 对 象 的 状 态 ( 有 效 性 ) 。 参 数

nStatus 值 是 用 DateTimeSpanStatus 枚 举 类 型 定 义 的 , 该 枚 举 类 型 是 在

COleDateTimeSpan 类 中 定 义 的 。

enum DateTimeSpanStatus{ valid = 0,

invalid = 1,

null = 2,

};

下 面 列 出 了 有 关 这 些 状 态 值 的 简 短 描 述 :

  • COleDateTimeSpan::valid 表 示 这 个 COleDateTimeSpan 对 象 是 有 效

    的 。

  • COleDateTimeSpan::invalid 表 示 这 个 COleDateTimeSpan 对 象 是 无

    效 的 , 也 就 是 说 , 这 个 对 象 的 值 有 可 能 是 错 误 的 。

  • COleDateTimeSpan::null 表 示 这 个 COleDateTimeSpan 对 象 是 空 的

    , 也 就是 说 , 没 有 值 被 提 供 给 这 个 对 象 。( 在 数 据 库 中 “ null ” 意 味 着“ 没 有 值 ” , 这与 C++ 的 NULL 不 同 。 )

警 告 这 个 函 数 适 用 于 高 级 编 程 的 情 况 。 这 个 函 数 不 改 变 对 象 中 的 数 据 。

它 常 常 被 用 来 将 对 象 的 状 态 设 置 为 null 或 invalid 。 注 意 赋 值 操 作 符

( operator = ) 和 SetDateTimeSpan 是 基 于 源 值 来 设 置 对 象 的 状 态 。

请 参 阅 C O leDateTimeSpan::GetStatus,C O leDateTimeSpan::m_status

操 作 符

CO leDateTimeSpan::operator =

const COleDateTimeSpan& operator=( double dblSpanSrc );

const COleDateTimeSpan& operator=( const COleDateTimeSpan& dateSpanSrc );

说 明

这 些 重 载 的 赋 值 操 作 符 将 源 日 期 /时 间 段 值 拷 贝 到 COleDateTimeSpan 对 象 中 。

请 参 阅 COleDateTimeSpan::COleDateTimeSpan

CO leDateTimeSpan::operator +,-

COleDateTimeSpan opetator+(const COleDateTimeSpan& dateSpan ) const; COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan ) const; COleDateTimeSpan operator-() const;

说 明

前 两 个 操 作 符 可 以 用 来 加 、 减 日 期 / 时 间 段 值 。 第 三 个 操 作 符 用 来 改 变 日 期 / 时间 段 值 的 符 号 。

如 果 两 个 操 作 数 有 一 个 为 空 , 则 结 果 中 的 COleDateTimeSpan 值 的 状 态 也 是 空 。

如 果 两 个 操 作 数 中 一 个 为 无 效 , 另 一 个 不 为 空 , 则 结 果 中 的 COleDateTimeSpan

值 的 状 态 也 是 无 效 。

有 关 状 态 值 valid , invalid 和 null 的 进 一 步 信 息 , 可 参 考 成 员 变 量 m_status。

请 参 阅 COleDateTimeSpan::operator+= , -=

CO leDateTimeSpan::operator +=,-=

const COleDateTimeSpan opetator+=(const COleDateTimeSpan dateSpan ) ; cons tCOleDateTimeSpan operator-=(const COleDateTimeSpan dateSpan );

说 明

这 两 个 操 作 符 可 以 用 来 从 一 个 COleDateTimeSpan 对 象 中 加 、 减 这 个 日 期 /时 间段 值 。

如 果 两 个 操 作 数 有 一 个 为 空 , 则 结 果 中 的 COleDateTimeSpan 值 的 状 态 也 是 空 。

如 果 两 个 操 作 数 中 一 个 为 无 效 , 另 一 个 不 为 空 , 则 结 果 中 的 COleDateTimeSpan

值 的 状 态 也 是 无 效 。

有 关 状 态 值 valid , invalid 和 null 的 进 一 步 信 息 , 可 参 考 成 员 变 量 m_status。

请 参 阅 COleDateTimeSpan::operator + , -

CO leDateTimeSpan::operator double

operator double() const

说 明

这 个 操 作 符 将 一 个 COleDateTimeSpan 值 的 天 数 作 为 一 个 浮 点 值 返 回 。

请 参 阅 COleDateTimeSpan::GetTotalDays, COleDateTimeSpan::SetDateTimeSpan,

COleDateTimeSpan::m_span

CO leDateTimeSpan Relational Operators

BOOL operator= = ( const COleDateTimeSpan& dateSpan ) cons t; BOOL operator!= ( const COleDateTimeSpan& dateSpan ) const ; BOOL operator< ( const COleDateTimeSpan& dateSpan ) cons t; BOOL operator> ( const COleDateTimeSpan& dateSpan ) cons t;

BOOL operator<= ( const COleDateTimeSpan& dateSpan ) const ; BOOL operator>= ( const COleDateTimeSpan& dateSpan ) const ;

说 明

这 些 操 作 符 比 较 两 个 日 期 /时 间 段 值 , 如 果 条 件 满 足 则 返 回 非 零 值 ; 否 则 返 回 零值 。

警 告 如 果 两 个 操 作 数 中 的 任 何 一 个 的 状 态 为 空 或 者 无 效 , 则 顺 序 操 作符 ( <, <= , > , >= ) 的 返 回 值 就 是 不 确 定 的 。 等 号 操 作 符 ( = = , != ) 也要 考 虑 操 作 数 的 状 态 。

示 例

COleDateTimeSpan spanOne(3,12,0,0); //3 天 12 小 时

COle DateTimeSpan spanTwo(spanOne); //3 天 12 小 时

Bool b;

b = spanOne = = spanTwo; //TRUE spanTwo.SetStatus(COleDateTimeSpan::invalid);

b = spanOne = = spanTwo; // FALSE,different status

b = spanOne != spanTwo; // TRUE,different status

b = spanOne < spanTwo; // FALSE,same value

b = spanOne > spanTwo; // FALSE,same value b = spanOne <= spanTwo; // TRUE,same value

b = spanOne >= spanTwo; // TRUE,same value

警 告 上 述 示 例 中 的 后 四 行 将 在 调 试 模 式 中 声 明 。

ColeDateTimeSpan ::Operator << , >>

friend CDumpContext& AFXAPI operator<<( CDumpContext&

dc ,COleDateTimeSpan date Sp - an )

friend CArchive& AFXAPI operator<<( CArchive& a r ,COleDateTimeSpan

dateSpan );

friend CArchive& AFXAPI operator>>( CArchive& a r ,COleDateTimeSpan

dateSpan );

说 明

COleDateTimeSpan 插 入 操 作 符 ( << ) 支 持 诊 断 转 储 并 可 以 保 存 到 一 个 文 件 。提 取 操 作 符 ( >> ) 支 持 从 一 个 文 件 中 提 取 内 容 。

请 参 阅 CDumpContext,CArchive

数 据 成 员

CO leDateTimeSpan::m_span

说 明

这 是 COleDateTimeSpan 对 象 的 基 本 的 双 精 度 值 。 其 值 以 日 为 单 位 表 示 日 期 /时间 段 值 。

警 告 改 变 这 个 双 精 度 数 据 成 员 的 值 , 将 改 变 该 COleDateTimeSpan 对象的 值 。 它 不 改 变 这 个 COleDateTimeSpan 对 象 的 状 态 。

请 参 阅 COleDateTimeSpan::COleDateTimeSpan ,

COleDateTimeSpan::SetDateTimeSpan , COleDateTimeSpan::operator double

CO leDateTimeSpan::m_status

说 明

这 个 数 据 成 员 的 数 据 类 型 是 枚 举 类 型 DateTimeSpanStatus, 此 枚 举 类 型 是 在

ColeDateTim e- Span 类 中 定 义 的 。

enum DateTimeSpanStatus{ valid = 0,

invalid = 1,

null = 2,

};

有 关 这 些 状 态 值 的 简 短 描 述 , 参 见 下 面 的 列 表 :

  • COleDateTimeSpan::valid 表 示 这 个 COleDateTimeSpan 对 象 是 有 效

    的 。

  • COleDateTimeSpan::invalid 表 示 这 个 COleDateTimeSpan 对 象 是 无

    效 的 , 也 就 是 说 , 这 个 对 象 的 值 有 可 能 是 错 误 的 。

  • COleDateTimeSpan::null 表 示 这 个 COleDateTimeSpan 对 象 是 空 的

    , 也 就是 说 , 没 有 值 被 提 供 给 这 个 对 象 。( 在 数 据 库 中“ null ” 意 味 着“没有值” , 这与 C++ 的 NULL 不 同 。 )

在 下 面 的 示 例 中 一 个 COleDateTimeSpan 对 象 的 状 态 是 无 效 的 :

  • 该 对 象 在 一 次 算 术 赋 值 操 作 , 即 += 或 -= 中 , 产 生 了 上

    溢 或 者 下 溢 。

  • 一 个 无 效 的 值 被 赋 给 了 这 个 对 象 。

  • 通 过 使 用 SetStatus 将 这 个 对 象 的 状 态 显 式 的 设 置 为 无

    效 。

有 关 其 它 可 以 将 状 态 设 置 为 无 效 的 操 作 的 更 进 一 步 的 信 息 , 参 见

ColeDateTimeSp - an::operator+ , -和 COleDateTimeSpan::operator+= , -= 。

警 告 这 个 数 据 成 员 用 于 高 级 程 序 开 发 情 况 中 。 可 以 使 用 内 联 成 员 函 数GetStatus 和 SetStatus 。 参 见 SetStatus 可 以 获 得 有 关 如 何 设 置 这 个 数据 成 员 的 更 进 一 步 的 警 告 。

有 关 COleDateTimeSpan 值 的 界 限 问 题 的 更 多 信 息 , 参 见 “ Visual C++ 程 序 员指 南 ” 一 书 中 的 文 章 “ 日 期 与 时 间 : 自 动 化 支 持 ” 。

请 参 阅 COleDateTimeSpan ::GetStatu s, COleDateTimeSpan::SetStatus