CalendarWeekRule Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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.