美文网首页
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