CalendarWeekRule CalendarWeekRule CalendarWeekRule CalendarWeekRule Enum

Определение

Устанавливает правила для определения первой недели года.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
Наследование
CalendarWeekRuleCalendarWeekRuleCalendarWeekRuleCalendarWeekRule
Атрибуты

Поля

FirstDay FirstDay FirstDay FirstDay 0

Указывает, что первая неделя года начинается в первый день года и заканчивается перед назначенным первым днем недели.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. Значение равно 0.The value is 0.

FirstFourDayWeek FirstFourDayWeek FirstFourDayWeek FirstFourDayWeek 2

Указывает, что первой неделей года является первая неделя, состоящая из четырех или более дней, следующих перед назначенным первым днем недели.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. Значение равно 2.The value is 2.

FirstFullWeek FirstFullWeek FirstFullWeek FirstFullWeek 1

Указывает, что первая неделя года начинается с назначенного первого дня недели, который встречается первым в году.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. Значение равно 1.The value is 1.

Комментарии

Является членом CalendarWeekRule возвращенного перечисления DateTimeFormatInfo.CalendarWeekRule свойство и используется текущий календарь языка и региональных параметров чтобы определить правила неделя календаря.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. Значение перечисления также используется в качестве параметра Calendar.GetWeekOfYear метод.The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

Правила для календарной недели зависят от System.DayOfWeek значение, указывающее первый день недели, в дополнение к зависимости от CalendarWeekRule значение.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.FirstDayOfWeek Свойство предоставляет значение по умолчанию для языка и региональных параметров, но любой DayOfWeek значение может быть указано в качестве первого дня недели в Calendar.GetWeekOfYear метод.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.

Первая неделя, на основе значения FirstDay может иметь один до семи дней.The first week based on the FirstDay value can have one to seven days. Первая неделя, на основе FirstFullWeek значения всегда состоит из семи дней.The first week based on the FirstFullWeek value always has seven days. Первая неделя, на основе значения FirstFourDayWeek может иметь четыре до семи дней.The first week based on the FirstFourDayWeek value can have four to seven days.

Предположим, например, по григорианскому календарю, что первый день года (1 января) ложится на вторник и первым днем недели является воскресенье.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. Выбрав FirstFullWeek определяет первое воскресенье (6 января) как начало первой недели года.Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. Первые пять дней года считаются частью последней недели предыдущего года.The first five days of the year are considered part of the last week of the previous year. Напротив, выбрав FirstFourDayWeek определяет первый день года (1 января) как начало первой недели года, так как существуют более четырех дней с 1 января за предыдущий день следующие воскресенье.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.

ДатаDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
31 декабря, понедельникDec 31 Mon За последнюю неделю предыдущего годаLast week of the previous year За последнюю неделю предыдущего годаLast week of the previous year За последнюю неделю предыдущего годаLast week of the previous year
1 января, ВторникJan 1 Tue 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year 1-я неделяWeek 1
2 января, средаJan 2 Wed 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year 1-я неделяWeek 1
3 января, четвергJan 3 Thu 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year 1-я неделяWeek 1
4 января, пятницаJan 4 Fri 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year 1-я неделяWeek 1
5 января СБJan 5 Sat 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year 1-я неделяWeek 1
6 января, воскресеньеJan 6 Sun 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2
7 января понедельникJan 7 Mon 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2
8 января, ВторникJan 8 Tue 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2
Среда, 9 январяJan 9 Wed 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2
10 января четвергJan 10 Thu 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2
11 января, пятницаJan 11 Fri 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2
12 января СБJan 12 Sat 2-я неделяWeek 2 1-я неделяWeek 1 2-я неделяWeek 2

Предположим, что первый день года (1 января) попадает в пятницу, и первым днем недели является воскресенье.Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. Выбрав FirstFourDayWeek определяет первое воскресенье (3 января) как начало первой недели года, поскольку, менее четырех дней с 1 января до дня до следующих воскресенье.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.

ДатаDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
Четверг, 31 декабряDec 31 Thu За последнюю неделю предыдущего годаLast week of the previous year За последнюю неделю предыдущего годаLast week of the previous year За последнюю неделю предыдущего годаLast week of the previous year
1 января, пятницаJan 1 Fri 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year За последнюю неделю предыдущего годаLast week of the previous year
2 января СБJan 2 Sat 1-я неделяWeek 1 За последнюю неделю предыдущего годаLast week of the previous year За последнюю неделю предыдущего годаLast week of the previous year
3 января SunJan 3 Sun 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1
4 января, понедельникJan 4 Mon 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1
5 января, ВторникJan 5 Tue 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1
6 января, средаJan 6 Wed 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1
Четверг, 7 январяJan 7 Thu 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1
8 января, пятницаJan 8 Fri 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1
Суббота: 9 январяJan 9 Sat 2-я неделяWeek 2 1-я неделяWeek 1 1-я неделяWeek 1

В следующем примере показано как FirstDay и System.DayOfWeek значения используются совместно, чтобы определить, каким образом назначаются недель.The following example illustrates how the FirstDay and System.DayOfWeek values are used together to determine how weeks are assigned. По григорианскому календарю первый день года (1 января) в 2013 ложится на вторник.In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. Если первым днем недели является воскресенье, первое воскресенье (6 января) является первым днем первой недели года, и суббота (5 января) принадлежит пятьдесят третьей недели предыдущего года.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. Изменение правила неделя календаря на FirstFourDayWeek определяет вторник (1 января) как начало первой недели года, так как существуют более чем четырех дней между Вторник, 1 января и воскресенье, 6 января.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. С помощью этого правила, 5 января принадлежит первой недели года.Using this rule, January 5 belongs to the first week of the year. Для 2010 года в какие 1 января попадает в пятницу, применяя правило FirstFourDayWeek с System.DayOfWeek как первый день недели делает воскресенье, 3 января начала первой недели года, поскольку первая неделя в 2010 с более чем четырех дней Janu арных 3 – 9.For 2010, a year in which January 1 falls on a Friday, applying the FirstFourDayWeek rule with System.DayOfWeek 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

Примечание

Это не соответствует строго стандарту ISO 8601.This does not map exactly to ISO 8601. В записи блога рассматриваются различия формат ISO 8601 Неделя из года, в среде Microsoft .NET.The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. Начиная с .NET Core 3.0 — ISOWeek.GetYear и ISOWeek.GetWeekOfYear решить эту проблему.Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

Каждый CultureInfo объект поддерживает несколько календарей.Each CultureInfo object supports a set of calendars. Calendar Свойство возвращает календаря по умолчанию для языка и региональных параметров и OptionalCalendars свойство возвращает массив, содержащий все календари, поддерживаемые языком и региональными параметрами.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. Чтобы изменить календарь, используемый CultureInfo, приложение должно задать Calendar свойство CultureInfo.DateTimeFormat в новый CalendarWeekRule.FirstFourDayWeek.To change the calendar used by a CultureInfo, the application should set the Calendar property of CultureInfo.DateTimeFormat to a new CalendarWeekRule.FirstFourDayWeek.

Применяется к

Дополнительно