CalendarWeekRule Enumeration

Definition

Definiert verschiedene Regeln für die Bestimmung der ersten Woche des Jahres.

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
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. Der Wert ist "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. Der Wert ist "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. Der Wert ist "1".

Hinweise

Ein Member der -Enumeration wird von der -Eigenschaft zurückgegeben und vom aktuellen Kalender der Kultur verwendet, um CalendarWeekRule DateTimeFormatInfo.CalendarWeekRule die Kalenderkalenderregel zu bestimmen. Der -Enumerationswert wird auch als Parameter für die -Methode Calendar.GetWeekOfYear verwendet.

Kalenderwochenregeln hängen von dem Wert ab, der zusätzlich zu einem Wert den ersten Tag der System.DayOfWeek Woche CalendarWeekRule angibt. Die -Eigenschaft stellt den Standardwert für eine Kultur, aber jeder Wert kann als erster Tag der Woche DateTimeFormatInfo.FirstDayOfWeek DayOfWeek in der -Methode angegeben Calendar.GetWeekOfYear werden.

Die erste Woche, die auf dem FirstDay Wert basiert, kann ein bis sieben Tage lang sein. Die erste Woche, die auf dem FirstFullWeek Wert basiert, hat immer sieben Tage. Die erste Woche, die auf dem FirstFourDayWeek Wert basiert, kann vier bis sieben Tage haben.

Nehmen wir beispielsweise im gregorianischen Kalender an, dass der erste Tag des Jahres (1. Januar) auf einen Dienstag fällt und der als erster Tag der Woche als Sonntag festgelegt ist. Wenn Sie FirstFullWeek auswählen, wird der erste Sonntag (6. Januar) als Anfang der ersten Woche des Jahres definiert. Die ersten fünf Tage des Jahres werden als Teil der letzten Woche des vorherigen Jahres betrachtet. Im Gegensatz dazu definiert die Auswahl von den ersten Tag des Jahres (1. Januar) als Anfang der ersten Woche des Jahres, da es mehr als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag FirstFourDayWeek gibt.

Datum FirstDay FirstFullWeek FirstFourDayWeek
Dec 31 Mon Letzte Woche des vorherigen Jahres Letzte Woche des vorherigen Jahres Letzte Woche des vorherigen Jahres
Jan 1 Tue Woche 1 Letzte Woche des vorherigen Jahres Woche 1
Jan 2 Wed Woche 1 Letzte Woche des vorherigen Jahres Woche 1
Jan 3 Do Woche 1 Letzte Woche des vorherigen Jahres Woche 1
Jan 4 Fr Woche 1 Letzte Woche des vorherigen Jahres Woche 1
Jan 5 Sa Woche 1 Letzte Woche des vorherigen Jahres Woche 1
Jan 6 Sun Woche 2 Woche 1 Woche 2
Jan 7 Mon Woche 2 Woche 1 Woche 2
Jan 8 Tue Woche 2 Woche 1 Woche 2
Jan 9 Wed Woche 2 Woche 1 Woche 2
Jan 10 Do Woche 2 Woche 1 Woche 2
Jan 11 Fr Woche 2 Woche 1 Woche 2
Jan 12 Sa Woche 2 Woche 1 Woche 2

Angenommen, der erste Tag des Jahres (1. Januar) fällt auf einen Freitag, und der designierte erste Tag der Woche ist Sonntag. Wenn Sie auswählen, wird der erste Sonntag (3. Januar) als Anfang der ersten Woche des Jahres definiert, da es weniger als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag FirstFourDayWeek gibt.

Datum FirstDay FirstFullWeek FirstFourDayWeek
Dec 31 Do Letzte Woche des vorherigen Jahres Letzte Woche des vorherigen Jahres Letzte Woche des vorherigen Jahres
Jan 1 Fr Woche 1 Letzte Woche des vorherigen Jahres Letzte Woche des vorherigen Jahres
Jan 2 Sa Woche 1 Letzte Woche des vorherigen Jahres Letzte Woche des vorherigen Jahres
Jan 3 Sun Woche 2 Woche 1 Woche 1
Jan 4 Mon Woche 2 Woche 1 Woche 1
Jan 5 Tue Woche 2 Woche 1 Woche 1
Jan 6 Wed Woche 2 Woche 1 Woche 1
Jan 7 Thu Woche 2 Woche 1 Woche 1
Jan 8 Fr Woche 2 Woche 1 Woche 1
Jan 9 Sa Woche 2 Woche 1 Woche 1

Im folgenden Beispiel wird veranschaulicht, wie die CalendarWeekRule Werte und zusammen verwendet DayOfWeek werden, um zu bestimmen, wie Wochen zugewiesen werden. Im gregorianischen Kalender fällt der erste Tag des Jahres (1. Januar) 2013 auf einen Dienstag. Wenn der festgelegte erste Tag der Woche Sonntag ist, ist der erste Sonntag (6. Januar) der erste Tag der ersten Woche des Jahres, und Samstag (5. Januar) gehört zur dritten Woche des vorherigen Jahres. Durch Ändern der FirstFourDayWeek Kalenderwochenregel in wird Dienstag (1. Januar) als Anfang der ersten Woche des Jahres definiert, da zwischen Dienstag, 1. Januar, und Sonntag, 6. Januar, mehr als vier Tage liegen. Mit dieser Regel gehört der 5. Januar zur ersten Woche des Jahres. Für 2010 ist ein Jahr, in dem der 1. Januar auf einen Freitag fällt, die Anwendung der Regel mit als ersten Tag der Woche der FirstFourDayWeek DayOfWeek.Sunday Sonntag, der 3. Januar, der Anfang der ersten Woche des Jahres, da die erste Woche im Jahr 2010 mit mehr als vier Tagen der 3. bis 9. Januar ist.

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 genau ISO 8601. Die Unterschiede werden im Blogeintrag ISO 8601 Week of Year format in Microsoft .NETerläutert. Beginnen Sie mit .NET Core 3.0, ISOWeek.GetYear und lösen Sie dieses ISOWeek.GetWeekOfYear Problem.

Jedes CultureInfo -Objekt unterstützt eine Reihe von Kalendern. Die Calendar -Eigenschaft gibt den Standardkalender für die Kultur zurück, und die OptionalCalendars -Eigenschaft gibt ein Array zurück, das alle von der Kultur unterstützten Kalender enthält. Um den von einem verwendeten Kalender CultureInfo zu ändern, legen Sie die Calendar -Eigenschaft von CultureInfo.DateTimeFormat auf einen neuen Calendar fest.

Gilt für

Siehe auch