-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
CalendarWeekRule.xml
260 lines (248 loc) · 18.2 KB
/
CalendarWeekRule.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
<Type Name="CalendarWeekRule" FullName="System.Globalization.CalendarWeekRule">
<TypeSignature Language="C#" Value="public enum CalendarWeekRule" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed CalendarWeekRule extends System.Enum" FrameworkAlternate="dotnet-uwp-10.0;net-5.0;net-6.0;net-7.0;net-8.0;net-9.0;netcore-1.0;netcore-1.1;netcore-2.0;netcore-2.1;netcore-2.2;netcore-3.0;netcore-3.1;netstandard-1.0;netstandard-1.1;netstandard-1.2;netstandard-1.3;netstandard-1.4;netstandard-1.6;netstandard-2.0;netstandard-2.1" />
<TypeSignature Language="DocId" Value="T:System.Globalization.CalendarWeekRule" />
<TypeSignature Language="VB.NET" Value="Public Enum CalendarWeekRule" />
<TypeSignature Language="F#" Value="type CalendarWeekRule = " />
<TypeSignature Language="C++ CLI" Value="public enum class CalendarWeekRule" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable sealed CalendarWeekRule extends System.Enum" FrameworkAlternate="netframework-1.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1" />
<AssemblyInfo>
<AssemblyName>System.Globalization</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.10.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<TypeForwardingChain>
<TypeForwarding From="mscorlib" FromVersion="4.0.0.0" To="System.Globalization" ToVersion="0.0.0.0" FrameworkAlternate="dotnet-uwp-10.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="5.0.0.0" FrameworkAlternate="net-5.0" />
<TypeForwarding From="System.Globalization" FromVersion="5.0.0.0" To="System.Runtime" ToVersion="5.0.0.0" FrameworkAlternate="net-5.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="6.0.0.0" FrameworkAlternate="net-6.0" />
<TypeForwarding From="System.Globalization" FromVersion="6.0.0.0" To="System.Runtime" ToVersion="6.0.0.0" FrameworkAlternate="net-6.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="7.0.0.0" FrameworkAlternate="net-7.0" />
<TypeForwarding From="System.Globalization" FromVersion="7.0.0.0" To="System.Runtime" ToVersion="7.0.0.0" FrameworkAlternate="net-7.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="8.0.0.0" FrameworkAlternate="net-8.0" />
<TypeForwarding From="System.Globalization" FromVersion="8.0.0.0" To="System.Runtime" ToVersion="8.0.0.0" FrameworkAlternate="net-8.0" />
<TypeForwarding From="netstandard" FromVersion="2.1.0.0" To="System.Runtime" ToVersion="9.0.0.0" FrameworkAlternate="net-9.0" />
<TypeForwarding From="System.Globalization" FromVersion="9.0.0.0" To="System.Runtime" ToVersion="9.0.0.0" FrameworkAlternate="net-9.0" />
<TypeForwarding From="System.Globalization" FromVersion="4.1.0.0" To="System.Runtime" ToVersion="4.2.0.0" FrameworkAlternate="netcore-2.0" />
<TypeForwarding From="System.Globalization" FromVersion="4.1.1.0" To="System.Runtime" ToVersion="4.2.1.0" FrameworkAlternate="netcore-2.1;netcore-2.2;netcore-3.0" />
<TypeForwarding From="System.Globalization" FromVersion="4.1.2.0" To="System.Runtime" ToVersion="4.2.2.0" FrameworkAlternate="netcore-3.1" />
</TypeForwardingChain>
<Base>
<BaseTypeName>System.Enum</BaseTypeName>
</Base>
<Attributes>
<Attribute FrameworkAlternate="netframework-1.1;netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Serializable]</AttributeName>
<AttributeName Language="F#">[<System.Serializable>]</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Runtime.InteropServices.ComVisible(true)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.InteropServices.ComVisible(true)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Defines different rules for determining the first week of the year.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
A member of the <xref:System.Globalization.CalendarWeekRule> enumeration is returned by the <xref:System.Globalization.DateTimeFormatInfo.CalendarWeekRule%2A?displayProperty=nameWithType> property and is used by the culture's current calendar to determine the calendar week rule. The enumeration value is also used as a parameter to the <xref:System.Globalization.Calendar.GetWeekOfYear%2A?displayProperty=nameWithType> method.
Calendar week rules depend on the <xref:System.DayOfWeek?displayProperty=nameWithType> value that indicates the first day of the week in addition to depending on a <xref:System.Globalization.CalendarWeekRule> value. The <xref:System.Globalization.DateTimeFormatInfo.FirstDayOfWeek%2A?displayProperty=nameWithType> property provides the default value for a culture, but any <xref:System.DayOfWeek> value can be specified as the first day of the week in the <xref:System.Globalization.Calendar.GetWeekOfYear%2A?displayProperty=nameWithType> method.
The first week based on the `FirstDay` value can have one to seven days. The first week based on the `FirstFullWeek` value always has seven days. The first week based on the `FirstFourDayWeek` value can have four to seven days.
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. Selecting `FirstFullWeek` defines the first Sunday (January 6) as the beginning of the first week of the year. The first five days of the year are considered part of the last week of the previous year. 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.
|Date|FirstDay|FirstFullWeek|FirstFourDayWeek|
|----------|--------------|-------------------|----------------------|
|Dec 31 Mon|Last week of the previous year|Last week of the previous year|Last week of the previous year|
|Jan 1 Tue|Week 1|Last week of the previous year|Week 1|
|Jan 2 Wed|Week 1|Last week of the previous year|Week 1|
|Jan 3 Thu|Week 1|Last week of the previous year|Week 1|
|Jan 4 Fri|Week 1|Last week of the previous year|Week 1|
|Jan 5 Sat|Week 1|Last week of the previous year|Week 1|
|Jan 6 Sun|Week 2|Week 1|Week 2|
|Jan 7 Mon|Week 2|Week 1|Week 2|
|Jan 8 Tue|Week 2|Week 1|Week 2|
|Jan 9 Wed|Week 2|Week 1|Week 2|
|Jan 10 Thu|Week 2|Week 1|Week 2|
|Jan 11 Fri|Week 2|Week 1|Week 2|
|Jan 12 Sat|Week 2|Week 1|Week 2|
Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. 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.
|Date|FirstDay|FirstFullWeek|FirstFourDayWeek|
|----------|--------------|-------------------|----------------------|
|Dec 31 Thu|Last week of the previous year|Last week of the previous year|Last week of the previous year|
|Jan 1 Fri|Week 1|Last week of the previous year|Last week of the previous year|
|Jan 2 Sat|Week 1|Last week of the previous year|Last week of the previous year|
|Jan 3 Sun|Week 2|Week 1|Week 1|
|Jan 4 Mon|Week 2|Week 1|Week 1|
|Jan 5 Tue|Week 2|Week 1|Week 1|
|Jan 6 Wed|Week 2|Week 1|Week 1|
|Jan 7 Thu|Week 2|Week 1|Week 1|
|Jan 8 Fri|Week 2|Week 1|Week 1|
|Jan 9 Sat|Week 2|Week 1|Week 1|
The following example illustrates how the <xref:System.Globalization.CalendarWeekRule> and <xref:System.DayOfWeek> values are used together to determine how weeks are assigned. In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. 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. 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. Using this rule, January 5 belongs to the first week of the year. For 2010, a year in which January 1 falls on a Friday, applying the `FirstFourDayWeek` rule with <xref:System.DayOfWeek.Sunday?displayProperty=nameWithType> 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.
:::code language="csharp" source="~/snippets/csharp/System.Globalization/CalendarWeekRule/Overview/calendarweekruleex.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/VS_Snippets_CLR_System/system.globalization.calendarweekrule/vb/calendarweekruleex.vb" id="Snippet1":::
> [!NOTE]
> This does not map exactly to ISO 8601. The differences are discussed in the blog entry [ISO 8601 Week of Year format in Microsoft .NET](https://go.microsoft.com/fwlink/?LinkId=160851). Starting with .NET Core 3.0, <xref:System.Globalization.ISOWeek.GetYear%2A?displayProperty=nameWithType> and <xref:System.Globalization.ISOWeek.GetWeekOfYear%2A?displayProperty=nameWithType> solve this problem.
Each <xref:System.Globalization.CultureInfo> object supports a set of calendars. The <xref:System.Globalization.CultureInfo.Calendar%2A> property returns the default calendar for the culture, and the <xref:System.Globalization.CultureInfo.OptionalCalendars%2A> property returns an array containing all the calendars supported by the culture. To change the calendar used by a <xref:System.Globalization.CultureInfo>, set the <xref:System.Globalization.DateTimeFormatInfo.Calendar%2A> property of <xref:System.Globalization.CultureInfo.DateTimeFormat%2A?displayProperty=nameWithType> to a new <xref:System.Globalization.Calendar>.
]]></format>
</remarks>
<altmember cref="P:System.Globalization.CultureInfo.Calendar" />
<altmember cref="P:System.Globalization.CultureInfo.OptionalCalendars" />
</Docs>
<Members>
<Member MemberName="FirstDay">
<MemberSignature Language="C#" Value="FirstDay" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Globalization.CalendarWeekRule FirstDay = int32(0)" />
<MemberSignature Language="DocId" Value="F:System.Globalization.CalendarWeekRule.FirstDay" />
<MemberSignature Language="VB.NET" Value="FirstDay" />
<MemberSignature Language="F#" Value="FirstDay = 0" Usage="System.Globalization.CalendarWeekRule.FirstDay" />
<MemberSignature Language="C++ CLI" Value="FirstDay" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>System.Globalization</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.10.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Globalization.CalendarWeekRule</ReturnType>
</ReturnValue>
<MemberValue>0</MemberValue>
<Docs>
<summary>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. The value is 0.</summary>
</Docs>
</Member>
<Member MemberName="FirstFourDayWeek">
<MemberSignature Language="C#" Value="FirstFourDayWeek" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Globalization.CalendarWeekRule FirstFourDayWeek = int32(2)" />
<MemberSignature Language="DocId" Value="F:System.Globalization.CalendarWeekRule.FirstFourDayWeek" />
<MemberSignature Language="VB.NET" Value="FirstFourDayWeek" />
<MemberSignature Language="F#" Value="FirstFourDayWeek = 2" Usage="System.Globalization.CalendarWeekRule.FirstFourDayWeek" />
<MemberSignature Language="C++ CLI" Value="FirstFourDayWeek" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>System.Globalization</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.10.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Globalization.CalendarWeekRule</ReturnType>
</ReturnValue>
<MemberValue>2</MemberValue>
<Docs>
<summary>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. The value is 2.</summary>
</Docs>
</Member>
<Member MemberName="FirstFullWeek">
<MemberSignature Language="C#" Value="FirstFullWeek" />
<MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Globalization.CalendarWeekRule FirstFullWeek = int32(1)" />
<MemberSignature Language="DocId" Value="F:System.Globalization.CalendarWeekRule.FirstFullWeek" />
<MemberSignature Language="VB.NET" Value="FirstFullWeek" />
<MemberSignature Language="F#" Value="FirstFullWeek = 1" Usage="System.Globalization.CalendarWeekRule.FirstFullWeek" />
<MemberSignature Language="C++ CLI" Value="FirstFullWeek" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyName>System.Globalization</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.10.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>netstandard</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.1.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Runtime</AssemblyName>
<AssemblyVersion>4.2.0.0</AssemblyVersion>
<AssemblyVersion>4.2.1.0</AssemblyVersion>
<AssemblyVersion>4.2.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>7.0.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Globalization.CalendarWeekRule</ReturnType>
</ReturnValue>
<MemberValue>1</MemberValue>
<Docs>
<summary>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. The value is 1.</summary>
</Docs>
</Member>
</Members>
</Type>