CalendarWeekRule Enumeration

Definition

Definiert verschiedene Regeln für die Bestimmung der ersten Woche des Jahres.Defines different rules for determining the first week of the year.

public enum class CalendarWeekRule
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public enum CalendarWeekRule
type CalendarWeekRule = 
Public Enum CalendarWeekRule
Vererbung
CalendarWeekRule
Attribute

Felder

FirstDay 0

Gibt an, dass die erste Woche des Jahres am ersten Tag des Jahres beginnt und vor dem folgenden, als erstem Wochentag bestimmten Tag endet.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. Der Wert ist 0 (null).The value is 0.

FirstFourDayWeek 2

Gibt an, dass die erste Woche des Jahres am ersten Tag des Jahres beginnt und vor dem folgenden, als erstem Wochentag bestimmten Tag endet.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. Der Wert ist 2.The value is 2.

FirstFullWeek 1

Gibt an, dass die erste Woche des Jahres beim ersten Vorkommen des Tages, der als erster Wochentag festgelegt wurde, an oder nach dem ersten Tag des Jahres beginnt.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. Der Wert ist 1.The value is 1.

Hinweise

Ein Member der CalendarWeekRule -Enumeration wird von der DateTimeFormatInfo.CalendarWeekRule -Eigenschaft zurückgegeben und wird vom aktuellen Kalender der Kultur verwendet, um die Kalenderwochen Regel zu bestimmen.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. Der-Enumerationswert wird auch als Parameter für die Calendar.GetWeekOfYear -Methode verwendet.The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

Die Kalenderwochen Regeln sind abhängig System.DayOfWeek von dem Wert, der den ersten Tag der Woche angibt, sowie abhängig von CalendarWeekRule einem Wert.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. Die DateTimeFormatInfo.FirstDayOfWeek -Eigenschaft stellt den Standardwert für eine Kultur bereit, DayOfWeek aber jeder Wert kann als erster Tag der Woche in der Calendar.GetWeekOfYear -Methode angegeben werden.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.

Die erste Woche, die auf FirstDay dem Wert basiert, kann ein bis sieben Tage betragen.The first week based on the FirstDay value can have one to seven days. Die erste Woche, die auf FirstFullWeek dem Wert basiert, hat immer sieben Tage.The first week based on the FirstFullWeek value always has seven days. Die erste Woche, die auf FirstFourDayWeek dem Wert basiert, kann vier bis sieben Tage betragen.The first week based on the FirstFourDayWeek value can have four to seven days.

Nehmen wir beispielsweise an, dass im gregorianischen Kalender der erste Tag des Jahrs (1. Januar) an einem Dienstag liegt und der erste Tag der Woche Sonntag ist.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. Wenn FirstFullWeek Sie auswählen, wird der erste Sonntag (6. Januar) als Anfang der ersten Woche des Jahres definiert.Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. Die ersten fünf Tage des Jahres werden als Teil der letzten Woche des vorangegangenen Jahres betrachtet.The first five days of the year are considered part of the last week of the previous year. Im Gegensatz dazu definiert FirstFourDayWeek die Auswahl den ersten Tag des Jahres (1. Januar) als Anfang der ersten Woche des Jahres, da mehr als vier Tage vom 1. Januar bis zum Tag vor dem nächsten Sonntag liegen.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.

DatumDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
31. Dezember MoDec 31 Mon Letzte Woche des vorherigen JahrsLast week of the previous year Letzte Woche des vorherigen JahrsLast week of the previous year Letzte Woche des vorherigen JahrsLast week of the previous year
1. JanuarJan 1 Tue Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Woche 1Week 1
2. JanuarJan 2 Wed Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Woche 1Week 1
Jan. 3. doJan 3 Thu Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Woche 1Week 1
4. Januar FrJan 4 Fri Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Woche 1Week 1
5. JanuarJan 5 Sat Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Woche 1Week 1
6. JanuarJan 6 Sun Woche 2Week 2 Woche 1Week 1 Woche 2Week 2
7. Januar MonJan 7 Mon Woche 2Week 2 Woche 1Week 1 Woche 2Week 2
8. JanuarJan 8 Tue Woche 2Week 2 Woche 1Week 1 Woche 2Week 2
9. JanuarJan 9 Wed Woche 2Week 2 Woche 1Week 1 Woche 2Week 2
10. Jan. doJan 10 Thu Woche 2Week 2 Woche 1Week 1 Woche 2Week 2
11. Januar FrJan 11 Fri Woche 2Week 2 Woche 1Week 1 Woche 2Week 2
12. JanuarJan 12 Sat Woche 2Week 2 Woche 1Week 1 Woche 2Week 2

Angenommen, der erste Tag des Jahres (1. Januar) fällt an einem Freitag, und der erste Tag der Woche ist Sonntag.Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. Durch FirstFourDayWeek Auswahl von wird der erste Sonntag (3. Januar) als Anfang der ersten Woche des Jahres definiert, da weniger als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag vorhanden sind.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.

DatumDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
31. Dezember DoDec 31 Thu Letzte Woche des vorherigen JahrsLast week of the previous year Letzte Woche des vorherigen JahrsLast week of the previous year Letzte Woche des vorherigen JahrsLast week of the previous year
1. Januar FriJan 1 Fri Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Letzte Woche des vorherigen JahrsLast week of the previous year
2. JanuarJan 2 Sat Woche 1Week 1 Letzte Woche des vorherigen JahrsLast week of the previous year Letzte Woche des vorherigen JahrsLast week of the previous year
3. JanuarJan 3 Sun Woche 2Week 2 Woche 1Week 1 Woche 1Week 1
4. Januar MonJan 4 Mon Woche 2Week 2 Woche 1Week 1 Woche 1Week 1
5. JanuarJan 5 Tue Woche 2Week 2 Woche 1Week 1 Woche 1Week 1
6. JanuarJan 6 Wed Woche 2Week 2 Woche 1Week 1 Woche 1Week 1
7. Jan. doJan 7 Thu Woche 2Week 2 Woche 1Week 1 Woche 1Week 1
Freitag, 8. JanuarJan 8 Fri Woche 2Week 2 Woche 1Week 1 Woche 1Week 1
9. JanuarJan 9 Sat Woche 2Week 2 Woche 1Week 1 Woche 1Week 1

Im folgenden Beispiel wird veranschaulicht, CalendarWeekRule wie DayOfWeek die-und-Werte verwendet werden, um zu bestimmen, wie Wochen zugewiesen werden.The following example illustrates how the CalendarWeekRule and DayOfWeek values are used together to determine how weeks are assigned. Im gregorianischen Kalender fällt der erste Tag des Jahres (1. Januar) in 2013 an einen Dienstag.In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. Wenn der erste Tag der Woche Sonntag ist, ist der erste Sonntag (der 6. Januar) der erste Tag der ersten Woche des Jahres, und Samstag (5. Januar) gehört zur fünfzig Drittel Woche des vorangegangenen Jahres.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. Das Ändern der Kalenderwochen Regel FirstFourDayWeek in definiert Dienstag (1. Januar) als Anfang der ersten Woche des Jahres, da mehr als vier Tage zwischen Dienstag, 1. Januar und Sonntag, 6. Januar liegen.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. Mit dieser Regel gehört der 5. Januar zur ersten Woche des Jahres.Using this rule, January 5 belongs to the first week of the year. Für 2010, ein Jahr, in dem der 1. Januar an einem Freitag liegt FirstFourDayWeek , wird DayOfWeek.Sunday die Regel mit dem ersten Tag der Woche am 3. Januar am Anfang der ersten Woche des Jahres angewendet, da die erste Woche 2010, die mehr als vier Tage umfasst, Januar ist. y 3 bis 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

Hinweis

Dies entspricht nicht exakt ISO 8601.This does not map exactly to ISO 8601. Die Unterschiede werden im Blogeintrag ISO 8601 week of Year Format in Microsoft .neterläutert.The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. Ab .net Core 3,0 ISOWeek.GetYear ISOWeek.GetWeekOfYear lösen Sie dieses Problem.Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

Jedes CultureInfo -Objekt unterstützt einen Satz von Kalendern.Each CultureInfo object supports a set of calendars. Die Calendar -Eigenschaft gibt den Standardkalender für die Kultur zurück, OptionalCalendars und die-Eigenschaft gibt ein Array zurück, das alle von der Kultur unterstützten Kalender enthält.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. Um den von einem CultureInfoverwendeten Kalender zu ändern, legen Sie die CultureInfo.DateTimeFormat Calendar -Eigenschaft von Calendarauf einen neuen fest.To change the calendar used by a CultureInfo, set the Calendar property of CultureInfo.DateTimeFormat to a new Calendar.

Gilt für:

Siehe auch