CalendarWeekRule CalendarWeekRule CalendarWeekRule CalendarWeekRule Enum

Definición

Define reglas diferentes para determinar la primera semana del año.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
Herencia
CalendarWeekRuleCalendarWeekRuleCalendarWeekRuleCalendarWeekRule
Atributos

Campos

FirstDay FirstDay FirstDay FirstDay 0

Indica que la primera semana del año se inicia el primer día del año y termina antes del primer día de la semana siguiente designado.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. El valor es 0.The value is 0.

FirstFourDayWeek FirstFourDayWeek FirstFourDayWeek FirstFourDayWeek 2

Indica que la primera semana del año es la primera semana con cuatro o más días antes del primer día de la semana designado.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. El valor es 2.The value is 2.

FirstFullWeek FirstFullWeek FirstFullWeek FirstFullWeek 1

Indica que la primera semana del año comienza en la primera aparición del primer día de la semana designado correspondiente al primer día del año o después de ese día.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. El valor es 1.The value is 1.

Comentarios

Un miembro de la CalendarWeekRule enumeración devuelta por la DateTimeFormatInfo.CalendarWeekRule propiedad y el calendario actual de la referencia cultural se utiliza para determinar la regla de semana del calendario.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. También se usa el valor de enumeración como un parámetro a la Calendar.GetWeekOfYear método.The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

Reglas de semana del calendario dependen del System.DayOfWeek valor que indica el primer día de la semana además en función de un CalendarWeekRule valor.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. El DateTimeFormatInfo.FirstDayOfWeek propiedad proporciona el valor predeterminado para una referencia cultural, pero cualquiera DayOfWeek valor se puede especificar como el primer día de la semana en el Calendar.GetWeekOfYear método.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.

La primera semana según el valor FirstDay puede tener uno a siete días.The first week based on the FirstDay value can have one to seven days. La primera semana en función del valor FirstFullWeek siempre tiene siete días.The first week based on the FirstFullWeek value always has seven days. La primera semana según el valor FirstFourDayWeek puede tener cuatro a siete días.The first week based on the FirstFourDayWeek value can have four to seven days.

Por ejemplo, en el calendario gregoriano, suponga que el primer día del año (1 de enero) cae en martes y el primer día de la semana designado es el domingo.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. Seleccionar FirstFullWeek define el primer domingo (6 de enero) como el principio de la primera semana del año.Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. Los cinco primeros días del año se consideran parte de la última semana del año anterior.The first five days of the year are considered part of the last week of the previous year. En cambio, al seleccionar FirstFourDayWeek define el primer día del año (1 de enero) como el principio de la primera semana del año porque hay más de cuatro días desde el 1 de enero hasta el día antes de la siguiente el domingo.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.

FechaDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
31 de diciembre del LUNDec 31 Mon Última semana del año anteriorLast week of the previous year Última semana del año anteriorLast week of the previous year Última semana del año anteriorLast week of the previous year
1 de enero, el martesJan 1 Tue Semana 1Week 1 Última semana del año anteriorLast week of the previous year Semana 1Week 1
Miércoles 2 de eneroJan 2 Wed Semana 1Week 1 Última semana del año anteriorLast week of the previous year Semana 1Week 1
Jueves 3 de eneroJan 3 Thu Semana 1Week 1 Última semana del año anteriorLast week of the previous year Semana 1Week 1
4 de enero, el viernesJan 4 Fri Semana 1Week 1 Última semana del año anteriorLast week of the previous year Semana 1Week 1
5 de enero SábJan 5 Sat Semana 1Week 1 Última semana del año anteriorLast week of the previous year Semana 1Week 1
6 de enero, SunJan 6 Sun Semana 2Week 2 Semana 1Week 1 Semana 2Week 2
7 de enero, el lunesJan 7 Mon Semana 2Week 2 Semana 1Week 1 Semana 2Week 2
8 de enero, el martesJan 8 Tue Semana 2Week 2 Semana 1Week 1 Semana 2Week 2
Miércoles 9 de eneroJan 9 Wed Semana 2Week 2 Semana 1Week 1 Semana 2Week 2
Jueves 10 de eneroJan 10 Thu Semana 2Week 2 Semana 1Week 1 Semana 2Week 2
11 de enero, el viernesJan 11 Fri Semana 2Week 2 Semana 1Week 1 Semana 2Week 2
12 de enero SábJan 12 Sat Semana 2Week 2 Semana 1Week 1 Semana 2Week 2

Supongamos que el primer día del año (1 de enero) es un viernes y el primer día de la semana designado es el domingo.Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. Seleccionar FirstFourDayWeek define el primer domingo (3 de enero) como el principio de la primera semana del año porque hay menos de cuatro días desde el 1 de enero hasta el día antes de la siguiente el domingo.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.

FechaDate FirstDayFirstDay FirstFullWeekFirstFullWeek FirstFourDayWeekFirstFourDayWeek
Jueves 31 de diciembreDec 31 Thu Última semana del año anteriorLast week of the previous year Última semana del año anteriorLast week of the previous year Última semana del año anteriorLast week of the previous year
1 de enero, el viernesJan 1 Fri Semana 1Week 1 Última semana del año anteriorLast week of the previous year Última semana del año anteriorLast week of the previous year
Sat 2 de eneroJan 2 Sat Semana 1Week 1 Última semana del año anteriorLast week of the previous year Última semana del año anteriorLast week of the previous year
3 de enero de SunJan 3 Sun Semana 2Week 2 Semana 1Week 1 Semana 1Week 1
4 de enero, el lunesJan 4 Mon Semana 2Week 2 Semana 1Week 1 Semana 1Week 1
5 de enero, el martesJan 5 Tue Semana 2Week 2 Semana 1Week 1 Semana 1Week 1
6 de enero, miércolesJan 6 Wed Semana 2Week 2 Semana 1Week 1 Semana 1Week 1
Jueves 7 de eneroJan 7 Thu Semana 2Week 2 Semana 1Week 1 Semana 1Week 1
8 de enero, el viernesJan 8 Fri Semana 2Week 2 Semana 1Week 1 Semana 1Week 1
9 de enero SábJan 9 Sat Semana 2Week 2 Semana 1Week 1 Semana 1Week 1

El ejemplo siguiente se muestra cómo el FirstDay y System.DayOfWeek valores se usan conjuntamente para determinar cómo se asignan semanas.The following example illustrates how the FirstDay and System.DayOfWeek values are used together to determine how weeks are assigned. En el calendario gregoriano, el primer día del año (1 de enero) en 2013 cae en martes.In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. Si el primer día de la semana designado es el domingo, el primer domingo (6 de enero) es el primer día de la primera semana del año y el sábado (5 de enero) pertenece a la semana de cincuenta tercio del año anterior.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. Si cambia la regla de la semana de calendario a FirstFourDayWeek define el martes (1 de enero) como el principio de la primera semana del año, porque hay más de cuatro días entre el martes, 1 de enero y el domingo, 6 de enero.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. Con esta regla, 5 de enero al que pertenece la primera semana del año.Using this rule, January 5 belongs to the first week of the year. 2010, un año en que el 1 de enero es un viernes, aplicar la regla FirstFourDayWeek con System.DayOfWeek como el primer día de la semana facilita el domingo, 3 de enero el principio de la primera semana del año, ya que la primera semana de 2010 que tenga más de cuatro días es Janu aria 3 al 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

Nota

Esto no se asigna exactamente a ISO 8601.This does not map exactly to ISO 8601. Se explican las diferencias en la entrada de blog formato ISO 8601 semana del año en Microsoft .NET.The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. A partir de .NET Core 3.0, ISOWeek.GetYear y ISOWeek.GetWeekOfYear solucionar este problema.Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

Cada CultureInfo objeto admite un conjunto de calendarios.Each CultureInfo object supports a set of calendars. El Calendar propiedad devuelve el calendario predeterminado para la referencia cultural y el OptionalCalendars propiedad devuelve una matriz que contiene todos los calendarios admitidos por la referencia cultural.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. Para cambiar el calendario usado por un CultureInfo, la aplicación debe establecer el Calendar propiedad de CultureInfo.DateTimeFormat a un nuevo 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.

Se aplica a

Consulte también: