美文网首页
EncodeTime - C++ Builder

EncodeTime - C++ Builder

作者: 玄坴 | 来源:发表于2021-11-01 10:54 被阅读0次

C++ Builder 参考手册System::SysutilsEncodeTime


由时、分、秒、毫秒生成日期时间型数值

头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:

System::TDateTime __fastcall EncodeTime(System::Word Hour, System::Word Min, System::Word Sec, System::Word MSec);

参数:

  • Hour:时,0~23
  • Min:分,0~59
  • Sec:秒,0~59
  • MSec:毫秒,0~999

返回值:

  • 日期时间类型数值,日期部分为 0,时间为参数指定的时、分、秒、毫秒;
  • 如果参数指定的时、分、秒、毫秒无效,抛出 EConvertError 异常;
  • 转换结果在数值上,为一个双精度浮点数值,等于 1 为一天 (24 小时整),0.5 为 12 小时,所以转换结果大于等于0,并且小于1;
  • 如果日期时间类型变量不包含日期,即日期为 0,如果输出日期,认为是 1899年12月30日,因为日期时间类型变量数值是从 1899/12/30 00:00:00.000 开始到这个时刻的天数,如果看到 C++ Builder 程序输出了这个日期,说明是输出了等于 0 的日期引起的。

例:23时 59分 59秒 999毫秒:转换为日期时间成功,1时 0分 60秒 0毫秒:转换为日期时间失败:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    try
    {
        TDateTime dt = Sysutils::EncodeTime(23, 59, 59, 999);
        Memo1->Lines->Add(FormatDateTime(L"hh:nn:ss.zzz", dt));
    }
    catch(Exception &e)
    {
        ShowMessage(L"转换出错:" + e.Message);
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    try
    {
        TDateTime dt = Sysutils::EncodeTime(1, 0, 60, 0);
        Memo1->Lines->Add(FormatDateTime(L"yyyy/mm/dd", dt));
    }
    catch(Exception &e)
    {
        ShowMessage(L"转换出错:" + e.Message);
    }
}

运行结果:

点击 Button1 运行结果 点击 Button2 运行结果

相关:


C++ Builder 参考手册System::SysutilsEncodeTime

相关文章

网友评论

      本文标题:EncodeTime - C++ Builder

      本文链接:https://www.haomeiwen.com/subject/gfmdahtx.html