WeekOfTheMonth - C++ Builder

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


这个日期时间在这一个月的第几周 (ISO 8601)

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

System::Word __fastcall WeekOfTheMonth(
    const System::TDateTime AValue);

System::Word __fastcall WeekOfTheMonth(
    const System::TDateTime AValue,
    System::Word &AYear,
    System::Word &AMonth);

参数:

  • AValue:日期时间类型变量;
  • AYear:返回这个日期的年,1 - 9999;
  • AMonth:返回这个日期的月,1 - 12;

返回值:

  • 返回值为 AValue 日期时间在 AYear 年 AMonth 月的第几周 (ISO 8601),范围 1 - 5;
  • 一个月一共有 4 或 5 周,这些周的分配规则请参考 IsValidDateWeek
  • 一年一共有 52 或 53 周,有关一年有多少周请参考 WeeksInYear
  • 可以使用函数 WeekOfTheYear 获取一个日期时间在一年的第几周 。

例:

#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));

    unsigned short iYear;
    unsigned short iWeek = WeekOfTheYear(dt, iYear);
    Memo1->Lines->Add(String().sprintf(L"今天是 %d 年的第 %d 周", iYear, iWeek));

    TDateTime t0 = StartOfAWeek(iYear, iWeek);
    TDateTime t1 = EndOfAWeek(iYear, iWeek);
    Memo1->Lines->Add(L"这一周从 " + FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz",t0)
                    + L" 到 "      + FormatDateTime(L"yyyy/mm/dd hh:nn:ss.zzz",t1));

    unsigned short iMonth;
    iWeek = WeekOfTheMonth(dt, iYear, iMonth);
    Memo1->Lines->Add(String().sprintf(L"今天是 %d 年 %d 月的第 %d 周", iYear, iMonth, iWeek));
}

运行结果:


相关:


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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容