CalendarWeekRule 列挙型

定義

年の最初の週を決定するためのさまざまな規則を定義します。Defines different rules for determining the first week of the year.

public enum class CalendarWeekRule
public enum CalendarWeekRule
[System.Serializable]
public enum CalendarWeekRule
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public enum CalendarWeekRule
type CalendarWeekRule = 
[<System.Serializable>]
type CalendarWeekRule = 
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type CalendarWeekRule = 
Public Enum CalendarWeekRule
継承
CalendarWeekRule
属性

フィールド

FirstDay 0

1 年の最初の週が、その年の第 1 日に始まり、週の最初の曜日として指定されている曜日が次に訪れるのを待たずに終了することを示します。Indicates that the first week of the year starts on the first day of the year and ends before the following designated first day of the week. 値は 0 です。The value is 0.

FirstFourDayWeek 2

1 年の最初の週が、週の最初の曜日として指定されている曜日が次に訪れるまでに 4 日以上かかる週になるように指定します。Indicates that the first week of the year is the first week with four or more days before the designated first day of the week. 値は 2 です。The value is 2.

FirstFullWeek 1

1 年の最初の週が、その年の第 1 日目またはその後に訪れる、週の最初の曜日として指定されている曜日に始まることを示します。Indicates that the first week of the year begins on the first occurrence of the designated first day of the week on or after the first day of the year. 値は 1 です。The value is 1.

注釈

列挙体のメンバーは、 CalendarWeekRule プロパティによって返され、 DateTimeFormatInfo.CalendarWeekRule カルチャの現在の暦が暦の週の規則を決定するために使用されます。A member of the CalendarWeekRule enumeration is returned by the DateTimeFormatInfo.CalendarWeekRule property and is used by the culture's current calendar to determine the calendar week rule. 列挙値は、メソッドのパラメーターとしても使用され Calendar.GetWeekOfYear ます。The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

カレンダー週のルールは、 System.DayOfWeek 値に応じて、週の最初の曜日を示す値に依存し CalendarWeekRule ます。Calendar week rules depend on the System.DayOfWeek value that indicates the first day of the week in addition to depending on a CalendarWeekRule value. プロパティは、 DateTimeFormatInfo.FirstDayOfWeek カルチャの既定値を提供しますが、 DayOfWeek メソッドで任意の値を週の最初の曜日として指定でき Calendar.GetWeekOfYear ます。The DateTimeFormatInfo.FirstDayOfWeek property provides the default value for a culture, but any DayOfWeek value can be specified as the first day of the week in the Calendar.GetWeekOfYear method.

値に基づく最初の週 FirstDay には、1 ~ 7 日を指定できます。The first week based on the FirstDay value can have one to seven days. 値に基づく最初の週は FirstFullWeek 常に7日です。The first week based on the FirstFullWeek value always has seven days. 値に基づく最初の週には、 FirstFourDayWeek 4 ~ 7 日まで指定できます。The first week based on the FirstFourDayWeek value can have four to seven days.

たとえば、グレゴリオ暦では、年の最初の日付 (1 月1日) が火曜日に、週の最初の曜日が日曜日になるとします。For example, in the Gregorian calendar, suppose that the first day of the year (January 1) falls on a Tuesday and the designated first day of the week is Sunday. を選択する FirstFullWeek と、最初の日曜日 (1 月6日) が年の最初の週の開始日として定義されます。Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. 年の最初の5日間は、前年の最後の週の一部と見なされます。The first five days of the year are considered part of the last week of the previous year. これに対して、を選択すると、年の最初の曜日 FirstFourDayWeek (1 月1日) が年の最初の週の開始日として定義されます。これは、1月1日から次の日曜日の前日までの4日を超えているためです。In contrast, selecting FirstFourDayWeek defines the first day of the year (January 1) as the beginning of the first week of the year because there are more than four days from January 1 to the day before the following Sunday.

DateDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
12月31日Dec 31 Mon 昨年の先週Last week of the previous year 昨年の先週Last week of the previous year 昨年の先週Last week of the previous year
1月1日火曜日Jan 1 Tue 第 1 週Week 1 昨年の先週Last week of the previous year 第 1 週Week 1
1月2日水曜日Jan 2 Wed 第 1 週Week 1 昨年の先週Last week of the previous year 第 1 週Week 1
Jan 3 ThuJan 3 Thu 第 1 週Week 1 昨年の先週Last week of the previous year 第 1 週Week 1
1月4日金曜日Jan 4 Fri 第 1 週Week 1 昨年の先週Last week of the previous year 第 1 週Week 1
Jan 5 SatJan 5 Sat 第 1 週Week 1 昨年の先週Last week of the previous year 第 1 週Week 1
1月6日Jan 6 Sun 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2
1月7日Jan 7 Mon 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2
1月8日火曜日Jan 8 Tue 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2
1月9日Jan 9 Wed 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2
Jan 10 ThuJan 10 Thu 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2
2017年1月11日Jan 11 Fri 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2
1月12日Jan 12 Sat 第 2 週Week 2 第 1 週Week 1 第 2 週Week 2

年の最初の日 (1 月1日) が金曜日で、週の最初の曜日が日曜日であるとします。Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. を選択すると、 FirstFourDayWeek 最初の日曜日 (1 月3日) が年の最初の週の始まりとして定義されます。これは、1月1日から次の日曜日の前日までの4日未満であるためです。Selecting FirstFourDayWeek defines the first Sunday (January 3) as the beginning of the first week of the year because there are fewer than four days from January 1 to the day before the following Sunday.

DateDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
12月31日 ThuDec 31 Thu 昨年の先週Last week of the previous year 昨年の先週Last week of the previous year 昨年の先週Last week of the previous year
1月1日金曜日Jan 1 Fri 第 1 週Week 1 昨年の先週Last week of the previous year 昨年の先週Last week of the previous year
1月2日Jan 2 Sat 第 1 週Week 1 昨年の先週Last week of the previous year 昨年の先週Last week of the previous year
1月3日Jan 3 Sun 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1
1月4日Jan 4 Mon 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1
1月5日火曜日Jan 5 Tue 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1
1月6日Jan 6 Wed 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1
Jan 7 ThuJan 7 Thu 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1
1月8日金曜日Jan 8 Fri 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1
1月9日Jan 9 Sat 第 2 週Week 2 第 1 週Week 1 第 1 週Week 1

次の例は、 CalendarWeekRule との値を一緒に使用して、週の割り当て方法を決定する方法を示してい DayOfWeek ます。The following example illustrates how the CalendarWeekRule and DayOfWeek values are used together to determine how weeks are assigned. グレゴリオ暦では、2013の年の最初の日 (1 月1日) が火曜日になります。In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. 週の最初の曜日が日曜日である場合、最初の日曜日 (1 月6日) は年の最初の週の最初の日、土曜日 (1 月5日) は前年の 50 ~ 3 週間に属します。If the designated first day of the week is Sunday, the first Sunday (January 6) is the first day of the first week of the year, and Saturday (January 5) belongs to the fifty-third week of the previous year. カレンダー週ルールを変更し FirstFourDayWeek て、年の最初の週の開始日として火曜日 (1 月1日) を定義します。これは、火曜日、1月1日、日曜日 (1 月6日) の間に4日以上があるためです。Changing the calendar week rule to FirstFourDayWeek defines Tuesday (January 1) as the beginning of the first week of the year, because there are more than four days between Tuesday, January 1, and Sunday, January 6. このルールを使用して、1月5日は年の最初の週に属します。Using this rule, January 5 belongs to the first week of the year. 2010の場合、1月1日が金曜日になる年で、 FirstFourDayWeek 週の最初の曜日としてというルールを適用すると、 DayOfWeek.Sunday 年の最初の週の始まりが日曜日になります。これは、2010の最初の週が4月3日から9日を超えるためです。For 2010, a year in which January 1 falls on a Friday, applying the FirstFourDayWeek rule with DayOfWeek.Sunday as the first day of the week makes Sunday, January 3 the beginning of the first week of the year, because the first week in 2010 that has more than four days is January 3 through 9.

using System;
using System.Globalization;

public class Example
{
   static Calendar cal = new GregorianCalendar();

   public static void Main()
   {
      DateTime date = new DateTime(2013, 1, 5);
      DayOfWeek firstDay = DayOfWeek.Sunday;
      CalendarWeekRule rule;

      rule = CalendarWeekRule.FirstFullWeek;
      ShowWeekNumber(date, rule, firstDay);

      rule = CalendarWeekRule.FirstFourDayWeek;
      ShowWeekNumber(date, rule, firstDay);

      Console.WriteLine();
      date = new DateTime(2010, 1, 3);
      ShowWeekNumber(date, rule, firstDay);
   }

   private static void ShowWeekNumber(DateTime dat, CalendarWeekRule rule,
                                      DayOfWeek firstDay)
   {
      Console.WriteLine("{0:d} with {1:F} rule and {2:F} as first day of week: week {3}",
                        dat, rule, firstDay, cal.GetWeekOfYear(dat, rule, firstDay));
   }
}
// The example displays the following output:
//       1/5/2013 with FirstFullWeek rule and Sunday as first day of week: week 53
//       1/5/2013 with FirstFourDayWeek rule and Sunday as first day of week: week 1
//
//       1/3/2010 with FirstFourDayWeek rule and Sunday as first day of week: week 1
Imports System.Globalization

Module Example
   
   Dim cal As New GregorianCalendar()
   
   Public Sub Main()
      Dim dat As Date = #01/05/2013#
      Dim firstDay As DayOfWeek = DayOfWeek.Sunday
      Dim rule As CalendarWeekRule
      
      rule = CalendarWeekRule.FirstFullWeek
      ShowWeekNumber(dat, rule, firstDay)
      
      rule = CalendarWeekRule.FirstFourDayWeek
      ShowWeekNumber(dat, rule, firstDay)

      Console.WriteLine()
      dat = #1/03/2010#
      ShowWeekNumber(dat, rule, firstDay)
   End Sub
   
   Private Sub ShowWeekNumber(dat As Date, rule As CalendarWeekRule, 
                              firstDay As DayOfWeek)
      Console.WriteLine("{0:d} with {1:F} rule and {2:F} as first day of week: week {3}",
                        dat, rule, firstDay, cal.GetWeekOfYear(dat, rule, firstDay))
   End Sub   
End Module
' The example displays the following output:
'       1/5/2013 with FirstFullWeek rule and Sunday as first day of week: week 53
'       1/5/2013 with FirstFourDayWeek rule and Sunday as first day of week: week 1
'       
'       1/3/2010 with FirstFourDayWeek rule and Sunday as first day of week: week 1

注意

これは、ISO 8601 に正確にはマップされません。This does not map exactly to ISO 8601. これらの違いについては、ブログの「 ISO 8601 週の年の形式 Microsoft .NET」で説明されています。The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. .NET Core 3.0 以降では ISOWeek.GetYearISOWeek.GetWeekOfYear この問題を解決します。Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

CultureInfo オブジェクトは、カレンダーのセットをサポートしています。Each CultureInfo object supports a set of calendars. Calendar プロパティは、カルチャの既定のカレンダーを返し、OptionalCalendars プロパティは、カルチャでサポートされているすべてのカレンダーを含む配列を返します。The Calendar property returns the default calendar for the culture, and the OptionalCalendars property returns an array containing all the calendars supported by the culture. によって使用されるカレンダーを変更するには CultureInfoCalendar のプロパティを新しいに設定し CultureInfo.DateTimeFormat Calendar ます。To change the calendar used by a CultureInfo, set the Calendar property of CultureInfo.DateTimeFormat to a new Calendar.

適用対象

こちらもご覧ください