CalendarWeekRule Wyliczenie

Definicja

Definiuje różne reguły służące do określania pierwszego tygodnia roku.Defines different rules for determining the first week of the year.

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
Dziedziczenie
CalendarWeekRule
Atrybuty

Pola

FirstDay 0

Wskazuje, że pierwszy tydzień roku zaczyna się pierwszego dnia roku i kończą się przed kolejnymi wyznaczeniami pierwszego dnia tygodnia.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. Wartość jest równa 0.The value is 0.

FirstFourDayWeek 2

Wskazuje, że pierwszy tydzień roku jest pierwszy tydzień z 4 lub więcej dni przed wyznaczeniem pierwszego dnia tygodnia.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. Wartość jest równa 2.The value is 2.

FirstFullWeek 1

Wskazuje, że pierwszy tydzień roku rozpoczyna się pierwszego wystąpienia pierwszego dnia tygodnia, w ciągu pierwszego dnia roku lub po nim.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. Wartość jest równa 1.The value is 1.

Uwagi

Element członkowski CalendarWeekRule wyliczenia jest zwracany przez DateTimeFormatInfo.CalendarWeekRule Właściwość i jest używany przez bieżący kalendarz kultury, aby określić regułę tygodnia kalendarzowego.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. Wartość wyliczenia jest również używana jako parametr Calendar.GetWeekOfYear metody.The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

Reguły tygodnia kalendarza są zależne od System.DayOfWeek wartości, która wskazuje pierwszy dzień tygodnia, a także w zależności od CalendarWeekRule wartości.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. DateTimeFormatInfo.FirstDayOfWeekWłaściwość zawiera wartość domyślną dla kultury, ale dowolną DayOfWeek wartość można określić jako pierwszy dzień tygodnia w Calendar.GetWeekOfYear metodzie.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.

Pierwszy tydzień w oparciu o FirstDay wartość może zawierać od 1 do siedmiu dni.The first week based on the FirstDay value can have one to seven days. Pierwszy tydzień w oparciu o FirstFullWeek wartość zawsze ma siedem dni.The first week based on the FirstFullWeek value always has seven days. Pierwszy tydzień w oparciu o FirstFourDayWeek wartość może zawierać od 4 do siedmiu dni.The first week based on the FirstFourDayWeek value can have four to seven days.

Na przykład w kalendarzu gregoriańskim Załóżmy, że pierwszy dzień roku (1 stycznia) przypada wtorek i wyznaczono pierwszy dzień tygodnia w niedzielę.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. Wybór FirstFullWeek definiuje pierwszą niedzielę (6 stycznia) jako początek pierwszego tygodnia roku.Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. Pierwsze pięć dni roku jest uważane za część ostatniego tygodnia poprzedniego roku.The first five days of the year are considered part of the last week of the previous year. W przeciwieństwie do wyboru FirstFourDayWeek definiuje pierwszy dzień roku (1 stycznia) jako początek pierwszego tygodnia roku, ponieważ od 1 stycznia do dnia występuje więcej niż cztery dni przed następującą niedzielę.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.

DataDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
31 grudnia PNDec 31 Mon Ostatni tydzień poprzedniego rokuLast week of the previous year Ostatni tydzień poprzedniego rokuLast week of the previous year Ostatni tydzień poprzedniego rokuLast week of the previous year
1 stycznia WTJan 1 Tue Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Tydzień 1Week 1
2 stycznia wedJan 2 Wed Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Tydzień 1Week 1
3 sty czwartekJan 3 Thu Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Tydzień 1Week 1
4 sty ptJan 4 Fri Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Tydzień 1Week 1
5 Jan SATJan 5 Sat Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Tydzień 1Week 1
6 stycznia SunJan 6 Sun Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2
7 stycznia PNJan 7 Mon Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2
8 stycznia WTJan 8 Tue Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2
9 stycznia wedJan 9 Wed Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2
10 stycznia czwartekJan 10 Thu Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2
11 sty ptJan 11 Fri Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2
12 JanJan 12 Sat Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 2Week 2

Załóżmy, że pierwszy dzień roku (1 stycznia) przypada w piątek, a wyznaczono pierwszy dzień tygodnia w niedzielę.Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. Wybranie opcji FirstFourDayWeek definiuje pierwszą niedzielę (3 stycznia) jako początek pierwszego tygodnia roku, ponieważ liczba dni od 1 stycznia do dnia jest mniejsza niż cztery.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.

DataDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
31 grudnia czwartekDec 31 Thu Ostatni tydzień poprzedniego rokuLast week of the previous year Ostatni tydzień poprzedniego rokuLast week of the previous year Ostatni tydzień poprzedniego rokuLast week of the previous year
1 stycznia ptJan 1 Fri Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Ostatni tydzień poprzedniego rokuLast week of the previous year
2 JanJan 2 Sat Tydzień 1Week 1 Ostatni tydzień poprzedniego rokuLast week of the previous year Ostatni tydzień poprzedniego rokuLast week of the previous year
3 stycznia SunJan 3 Sun Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1
4 stycznia PNJan 4 Mon Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1
5 stycznia WTJan 5 Tue Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1
4 stycznia wedJan 6 Wed Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1
7 stycznia czwartekJan 7 Thu Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1
8 stycznia ptJan 8 Fri Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1
9 JanJan 9 Sat Tydzień 2Week 2 Tydzień 1Week 1 Tydzień 1Week 1

Poniższy przykład ilustruje, jak CalendarWeekRule i DayOfWeek wartości są używane razem w celu określenia sposobu, w jaki są przypisane tygodnie.The following example illustrates how the CalendarWeekRule and DayOfWeek values are used together to determine how weeks are assigned. W kalendarzu gregoriańskim pierwszy dzień roku (1 stycznia) w 2013 przypada wtorek.In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. Jeśli wyznaczono pierwszy dzień tygodnia w niedzielę, pierwsza niedziela (6 stycznia) jest pierwszym dniem pierwszego tygodnia roku, a Sobota (5 stycznia) należy do pięćdziesiąt-trzeciego tygodnia poprzedniego roku.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. Zmiana reguły tygodnia kalendarza na FirstFourDayWeek zdefiniowanie wtorek (1 stycznia) jako początku pierwszego tygodnia roku, ponieważ istnieje więcej niż cztery dni między wtorek, 1 stycznia i niedziela, 6 stycznia.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. Przy użyciu tej reguły 5 stycznia należy do pierwszego tygodnia roku.Using this rule, January 5 belongs to the first week of the year. W przypadku 2010 rok, w którym 1 stycznia przypada w piątek, zastosowanie FirstFourDayWeek reguły DayOfWeek.Sunday jako pierwszego dnia tygodnia sprawia, że niedziela, Styczeń 3, początek pierwszego tygodnia roku, ponieważ pierwszy tydzień w 2010, który ma więcej niż cztery dni, to od 3 stycznia do 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

Uwaga

Nie jest to dokładnie zamapowane na ISO 8601.This does not map exactly to ISO 8601. Różnice omówiono w wpisie w blogu ISO 8601 tygodnia w formacie roku w Microsoft .NET.The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. Począwszy od platformy .NET Core 3,0 ISOWeek.GetYear i ISOWeek.GetWeekOfYear rozwiązuje ten problem.Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

Każdy CultureInfo obiekt obsługuje zestaw kalendarzy.Each CultureInfo object supports a set of calendars. CalendarWłaściwość zwraca domyślny kalendarz dla kultury, a OptionalCalendars Właściwość zwraca tablicę zawierającą wszystkie kalendarze obsługiwane przez kulturę.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. Aby zmienić kalendarz używany przez CultureInfo , należy ustawić Calendar Właściwość CultureInfo.DateTimeFormat na nowy Calendar .To change the calendar used by a CultureInfo, set the Calendar property of CultureInfo.DateTimeFormat to a new Calendar.

Dotyczy

Zobacz też