IsValidDateWeek - C++ Builder

C++ Builder 參考手冊 ? System::Dateutils ? IsValidDateWeek


判斷年、這個年的第幾周、這個周的第幾天是否有效 (ISO 8601)

頭文件:#include <System.DateUtils.hpp>
命名空間:System::Dateutils
函數(shù)原型:

bool __fastcall IsValidDateWeek(
    const System::Word AYear,
    const System::Word AWeekOfYear,
    const System::Word ADayOfWeek);

參數(shù):

  • AYear:年,0001 - 9999;
  • AWeekOfYear:這一年的第幾周,1 - 52 或 1 - 53;
  • ADayOfWeek:這一周的天,1 - 7;

返回值:

  • true:參數(shù)年、這個年的第幾周、這個周的第幾天有效;
  • false:參數(shù)的年、周、天無效;
  • 按照 ISO 8601 標(biāo)準(zhǔn) (中國使用這個國際標(biāo)準(zhǔn)),一周 7 天:DayMonday ~ DaySunday
    星期一:DayMonday = 1
    星期二:DayTuesday = 2
    星期三:DayWednesday = 3
    星期四:DayThursday = 4
    星期五:DayFriday = 5
    星期六:DaySaturday = 6
    星期天:DaySunday = 7
    如果這一周跨兩個月,由于一周七天,無法兩等分,這一周在兩個月的部分必然天數(shù)不同,在哪個月的天數(shù)多,這一周就歸屬于哪個月,跨年也是如此。另一種相同結(jié)論的說法:一周正中間一天即周四在哪個月,這一周就屬于哪個月,數(shù)一數(shù)一個月有幾個周四,這一個月一共就有幾周。這說明:
    ? 一周的七天可能不在同一個月,也可能不在同一年;
    ? 一個月的最前和最后幾天按照周的說法,可能不在這個月;
    ? 一年的最前和最后的幾天按照周的說法,可能不在這一年。
  • 一個月最多 5 周:如果一個月的第一天是周四,那么這個月的前 4 天 (1 - 4 日) 與上個月的后 3 天組成這個月的第一周,接下來的完整的 3 周 (21 天) 都在這個月,這樣這個月前 25 天就是 1 - 4 周,如果這個月還剩下的天數(shù)夠 4 天,就能再占一周,這樣只要一個月有 29 天,就有可能占 5 個周。

根據(jù)上面日歷截圖的第一行這一周:2021/12/27 - 2022/1/2 這一周,有5天在2021年,2天在2022年,在2021年12月的天數(shù)多,那么這一周就屬于2021年12月,2022/1/1 和 2022/1/2 在 2021年的第52周,2021年12月的第5周,這一周的第6天和第7天,2022/1/3 在2022年的第1周,2022年1月份的第1周,這一周的第1天。


相關(guān):


C++ Builder 參考手冊 ? System::Dateutils ? IsValidDateWeek

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容