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