美文网首页c/c++
SecondOfTheYear - C++ Builder

SecondOfTheYear - C++ Builder

作者: 玄坴 | 来源:发表于2022-08-06 13:32 被阅读0次

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


    这个日期时间在这一年的第几秒钟

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

    unsigned __fastcall SecondOfTheYear(const System::TDateTime AValue);
    

    参数:

    • AValue:日期时间类型变量;

    返回值:

    • 这个日期时间在这一年的第几秒钟,从 0 开始:平年 0 - 31535999,闰年 0 - 31622399;
    • 1月1日0时0分0秒,是这一年的第 0 秒钟,平年一共 365 天 * 246060 = 31536000 秒钟,12月31日23时59分59秒为这一年的最后一秒钟,即第 31535999 秒钟;闰年一共 366 天 * 246060 = 31622400 秒钟,12月31日23时59分59秒为这一年的最后一秒钟,即第 31622399 秒钟。

    例:现在是今年的第几秒钟,用两种方法:用函数获取、用计算天数的方法 (两个日期时间相减得到的是一个 double 类型的天数,小数,例如 0.5 为 12 小时)。

    #include <System.DateUtils.hpp>
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        TDateTime dt = Sysutils::Now(); // 现在的日期和时间
        Memo1->Lines->Add(L"现在时刻:" + FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz", dt));
        Memo1->Lines->Add(String().sprintf(L"现在是今年的第 %d 秒钟", SecondOfTheYear(dt)));
    
        TDateTime t0 = StartOfTheYear(dt); // 今年1月1日0时
        Memo1->Lines->Add(L"今年开始:" + FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz", t0));
    
        double lfDays = dt - t0; // 今天是今年的第几天 (小数,例如 0.5 为 12 小时)
        Memo1->Lines->Add(String().sprintf(L"今天是今年的第 %d 天", (int)lfDays));
        int iSeconds = lfDays * 24 * 60 * 60; // 现在是今年的第几秒钟
        Memo1->Lines->Add(String().sprintf(L"现在是今年的第 %d 秒钟", iSeconds));
    }
    

    运行结果:


    相关:


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

    相关文章

      网友评论

        本文标题:SecondOfTheYear - C++ Builder

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