GetYearStartメソッド/GetYearEndメソッドを使用することで、ある年(ISO週年)の開始日・終了日をDateTimeで取得することができます。 また、GetWeeksInYearメソッドを使用することで、ある週年における週の数を求めることができます。
GetYearStartメソッドが返す日付の曜日・DateTime.DayOfWeekプロパティは常に月曜日(DayOfWeek.Monday)、GetYearEndメソッドは常に日曜日(DayOfWeek.Sunday)となります。
ISOWeek.GetYearStart/GetYearEnd/GetWeeksInYearメソッドでISO週年の開始日/終了日/週の数を取得する
using System;
using System.Globalization;
class Sample {
static void Main()
{
// 2015年〜2025年について
for (var year = 2015; year <= 2025; year++) {
Console.WriteLine(
"ISO週暦 {0}年: {1:d} 〜 {2:d} (全{3}週)",
year,
ISOWeek.GetYearStart(year), // ISO週年yearの開始日をDateTimeで取得
ISOWeek.GetYearEnd(year), // ISO週年yearの終了日をDateTimeで取得
ISOWeek.GetWeeksInYear(year) // ISO週年yearにおける週の数を取得
);
}
}
}
実行結果
ISO週暦 2015年: 2014/12/29 〜 2016/01/03 (全53週) ISO週暦 2016年: 2016/01/04 〜 2017/01/01 (全52週) ISO週暦 2017年: 2017/01/02 〜 2017/12/31 (全52週) ISO週暦 2018年: 2018/01/01 〜 2018/12/30 (全52週) ISO週暦 2019年: 2018/12/31 〜 2019/12/29 (全52週) ISO週暦 2020年: 2019/12/30 〜 2021/01/03 (全53週) ISO週暦 2021年: 2021/01/04 〜 2022/01/02 (全52週) ISO週暦 2022年: 2022/01/03 〜 2023/01/01 (全52週) ISO週暦 2023年: 2023/01/02 〜 2023/12/31 (全52週) ISO週暦 2024年: 2024/01/01 〜 2024/12/29 (全52週) ISO週暦 2025年: 2024/12/30 〜 2025/12/28 (全52週)