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 Element der CalendarWeekRule Aufzählung wird von der DateTimeFormatInfo.CalendarWeekRule Eigenschaft zurückgegeben und wird vom aktuellen Kalender der Kultur verwendet, um die Kalenderwochenregel zu bestimmen. Der Enumerationswert wird auch als Parameter für die Calendar.GetWeekOfYear Methode verwendet.

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

Die erste Woche basierend auf dem FirstDay Wert kann über einen bis sieben Tage verfügen. Die erste Woche basierend auf dem FirstFullWeek Wert hat immer sieben Tage. Die erste Woche basierend auf dem FirstFourDayWeek Wert kann vier bis sieben Tage aufweisen.

Angenommen, der erste Tag des Jahres (Januar 1) fällt beispielsweise im Gregorianischen Kalender auf einen Dienstag, und der angegebene erste Wochentag ist Sonntag. Die Auswahl FirstFullWeek definiert den ersten Sonntag (6. Januar) als Anfang der ersten Woche des Jahres. Die ersten fünf Tage des Jahres werden als Teil der letzten Woche des vorjahrs betrachtet. Im Gegensatz dazu definiert die Auswahl FirstFourDayWeek den ersten Tag des Jahres (Januar 1) als Anfang der ersten Woche des Jahres, da es mehr als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag gibt.

Datum FirstDay FirstFullWeek FirstFourDayWeek
31. Dezember Letzte Woche des Vorjahrs Letzte Woche des Vorjahrs Letzte Woche des Vorjahrs
Jan 1 Tue Woche 1 Letzte Woche des Vorjahrs Woche 1
Jan 2 Wed Woche 1 Letzte Woche des Vorjahrs Woche 1
3. Januar Woche 1 Letzte Woche des Vorjahrs Woche 1
Januar 4 Fri Woche 1 Letzte Woche des Vorjahrs Woche 1
Januar 5 Sat Woche 1 Letzte Woche des Vorjahrs Woche 1
Jan 6 Sonne 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
10. Januar Woche 2 Woche 1 Woche 2
Januar 11 Fri Woche 2 Woche 1 Woche 2
Januar 12 Sat Woche 2 Woche 1 Woche 2

Angenommen, der erste Tag des Jahres (1. Januar) fällt am Freitag, und der angegebene erste Tag der Woche ist Sonntag. Die Auswahl FirstFourDayWeek definiert den ersten Sonntag (3. Januar) als Anfang der ersten Woche des Jahres, da es weniger als vier Tage vom 1. Januar bis zum Tag vor dem folgenden Sonntag gibt.

Datum FirstDay FirstFullWeek FirstFourDayWeek
31. Dezember Letzte Woche des Vorjahrs Letzte Woche des Vorjahrs Letzte Woche des Vorjahrs
Januar 1 Fri Woche 1 Letzte Woche des Vorjahrs Letzte Woche des Vorjahrs
Januar 2 Sat Woche 1 Letzte Woche des Vorjahrs Letzte Woche des Vorjahrs
3. Januar Woche 2 Woche 1 Woche 1
Januar 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
7. Januar Woche 2 Woche 1 Woche 1
8. Januar Woche 2 Woche 1 Woche 1
Jan 9 Sat Woche 2 Woche 1 Woche 1

Im folgenden Beispiel wird veranschaulicht, wie die CalendarWeekRule Werte zusammen DayOfWeek verwendet werden, um zu bestimmen, wie Wochen zugewiesen werden. Im Gregorianischen Kalender fällt der erste Tag des Jahres (1. Januar) im Jahr 2013 auf einen Dienstag. Wenn der festgelegte erste Wochentag Sonntag ist, ist der erste Sonntag (6. Januar) der erste Tag der ersten Woche des Jahres, und Samstag (5. Januar) gehört zur fünfzig dritten Woche des vorherigen Jahres. Wenn Sie die Kalenderwochenregel ändern, um Dienstag (1. Januar) als Anfang der ersten Woche des Jahres zu FirstFourDayWeek definieren, da es mehr als vier Tage zwischen Dienstag, 1. Januar und Sonntag, 6. Januar gibt. Mit dieser Regel gehört der 5. Januar zur ersten Woche des Jahres. Für 2010, ein Jahr, in dem 1. Januar auf einen Freitag fällt, wird die FirstFourDayWeek Regel mit DayOfWeek.Sunday dem ersten Tag der Woche sonntags, 3. Januar am Anfang der ersten Woche des Jahres, da die erste Woche im Jahr 2010, die mehr als vier Tage hat, 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 bezieht sich nicht genau auf ISO 8601. Die Unterschiede werden im Iso 8601 Week of Year-Format im Blogeintrag in Microsoft .NET erläutert. Beginnend mit .NET Core 3.0 und ISOWeek.GetYear ISOWeek.GetWeekOfYear lösen Sie dieses 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 kalender enthält, die von der Kultur unterstützt werden. Legen Sie die Calendar Eigenschaft CultureInfo.DateTimeFormat eines neuen CalendarKalenders fest, um den von einem Kalender CultureInfoverwendeten Kalender zu ändern.

Gilt für:

Siehe auch