CalendarWeekRule Enumerazione

Definizione

Definisce regole diverse per determinare la prima settimana dell'anno.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
Ereditarietà
CalendarWeekRule
Attributi

Campi

FirstDay 0

Indica che la prima settimana dell'anno inizia con il primo giorno dell'anno e termina prima del successivo primo giorno della settimana designato.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. Il valore è 0.The value is 0.

FirstFourDayWeek 2

Indica che la prima settimana dell'anno è la prima settimana con quattro o più giorni prima del primo giorno della settimana designato.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. Il valore è 2.The value is 2.

FirstFullWeek 1

Indica che la prima settimana dell'anno inizia con la prima occorrenza del primo giorno della settimana designato in corrispondenza o dopo il primo giorno dell'anno.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. Il valore è 1.The value is 1.

Commenti

Un membro dell'enumerazione CalendarWeekRule viene restituito dalla proprietà DateTimeFormatInfo.CalendarWeekRule e viene utilizzato dal calendario corrente delle impostazioni cultura per determinare la regola relativa alle settimane 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. Il valore dell'enumerazione viene anche utilizzato come parametro per il metodo Calendar.GetWeekOfYear.The enumeration value is also used as a parameter to the Calendar.GetWeekOfYear method.

Le regole relative alle settimane del calendario dipendono dal valore System.DayOfWeek, che indica il primo giorno della settimana, nonché dal valore 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. La DateTimeFormatInfo.FirstDayOfWeek proprietà fornisce il valore predefinito per le impostazioni cultura, ma DayOfWeek è possibile specificare qualsiasi valore come primo giorno Calendar.GetWeekOfYear della settimana nel metodo.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 prima settimana in base al FirstDay valore può avere da uno a sette giorni.The first week based on the FirstDay value can have one to seven days. La prima settimana in base al FirstFullWeek valore ha sempre sette giorni.The first week based on the FirstFullWeek value always has seven days. La prima settimana in base al FirstFourDayWeek valore può avere da 4 a sette giorni.The first week based on the FirstFourDayWeek value can have four to seven days.

Nel calendario gregoriano, ad esempio, si supponga che il primo giorno dell'anno (1 gennaio) rientri in un martedì e il primo giorno della settimana designato sia domenica.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. La FirstFullWeek selezione definisce la prima domenica (6 gennaio) come inizio della prima settimana dell'anno.Selecting FirstFullWeek defines the first Sunday (January 6) as the beginning of the first week of the year. I primi cinque giorni dell'anno sono considerati parte dell'ultima settimana dell'anno precedente.The first five days of the year are considered part of the last week of the previous year. Al contrario, la FirstFourDayWeek selezione definisce il primo giorno dell'anno (1 gennaio) come inizio della prima settimana dell'anno perché la domenica è più di quattro giorni dal 1 ° gennaio al giorno.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 FirstFullWeek (FirstFullWeek FirstFourDayWeekFirstFourDayWeek
31 dicembre lunDec 31 Mon Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Jan 1 marJan 1 Tue Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
2 gen WedJan 2 Wed Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Jan 3 ThuJan 3 Thu Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
4 gen VenJan 4 Fri Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
5 gen SatJan 5 Sat Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Settimana 1Week 1
Jan 6 SunJan 6 Sun Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
7 gennaio lunJan 7 Mon Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
8 gennaio marJan 8 Tue Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
9 gennaio MerJan 9 Wed Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
Jan 10 ThuJan 10 Thu Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
11 gennaio venJan 11 Fri Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2
12 gen SatJan 12 Sat Settimana 2Week 2 Settimana 1Week 1 Settimana 2Week 2

Si supponga che il primo giorno dell'anno (1 gennaio) cada il venerdì e che il primo giorno della settimana sia domenica.Suppose the first day of the year (January 1) falls on a Friday and the designated first day of the week is Sunday. La FirstFourDayWeek selezione definisce la prima domenica (3 gennaio) come inizio della prima settimana dell'anno, perché il 1 ° gennaio al giorno precedente la domenica successiva sono presenti meno di quattro giorni.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 FirstFullWeek (FirstFullWeek FirstFourDayWeekFirstFourDayWeek
31 dicembre giovedìDec 31 Thu Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
1 gennaio venJan 1 Fri Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Jan 2 SabJan 2 Sat Settimana 1Week 1 Ultima settimana dell'anno precedenteLast week of the previous year Ultima settimana dell'anno precedenteLast week of the previous year
Jan 3 SunJan 3 Sun Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
4 gen lunJan 4 Mon Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
5 gennaioJan 5 Tue Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
6 gennaio MerJan 6 Wed Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
7 gennaio giovedìJan 7 Thu Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
8 gennaio venJan 8 Fri Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1
9 gen SatJan 9 Sat Settimana 2Week 2 Settimana 1Week 1 Settimana 1Week 1

Nell'esempio seguente viene illustrato come i valori CalendarWeekRule e DayOfWeek vengono utilizzati insieme per determinare come vengono assegnate le settimane.The following example illustrates how the CalendarWeekRule and DayOfWeek values are used together to determine how weeks are assigned. Nel calendario gregoriano il primo giorno dell'anno (1 gennaio) nel 2013 cade di martedì.In the Gregorian calendar, the first day of the year (January 1) in 2013 falls on a Tuesday. Se il primo giorno della settimana è domenica, la prima domenica (6 gennaio) è il primo giorno della prima settimana dell'anno e sabato (5 gennaio) appartiene alla cinquantatreesima settimana dell'anno precedente.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. La modifica della regola relativa alle settimane del calendario in FirstFourDayWeek consente di definire martedì (1 gennaio) come inizio della prima settimana dell'anno poiché tra martedì 1 gennaio e domenica 6 gennaio ci sono più di quattro giorni.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. Utilizzando questa regola, il 5 gennaio appartiene alla prima settimana dell'anno.Using this rule, January 5 belongs to the first week of the year. Per il 2010, un anno in cui l'1 gennaio cade di venerdì, l'applicazione della regola FirstFourDayWeek con DayOfWeek.Sunday come primo giorno della settimana pone domenica 3 gennaio all'inizio della prima settimana dell'anno perché la prima settimana nel 2010 che ha più di quattro giorni va dal 3 al 9 gennaio.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

Nota

Questo non viene mappato esattamente a ISO 8601.This does not map exactly to ISO 8601. Le differenze sono illustrate nel post del Blog relativo al formato di settimana dell'anno ISO 8601 in Microsoft .NET.The differences are discussed in the blog entry ISO 8601 Week of Year format in Microsoft .NET. A partire da .NET Core 3,0 ISOWeek.GetYear , ISOWeek.GetWeekOfYear risolvere il problema.Starting with .NET Core 3.0, ISOWeek.GetYear and ISOWeek.GetWeekOfYear solve this problem.

Ogni CultureInfo oggetto supporta un set di calendari.Each CultureInfo object supports a set of calendars. La Calendar proprietà restituisce il calendario predefinito per le impostazioni cultura e la OptionalCalendars proprietà restituisce una matrice contenente tutti i calendari supportati dalle impostazioni cultura.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. Per modificare il calendario utilizzato da un CultureInfooggetto, impostare Calendar la proprietà CultureInfo.DateTimeFormat di su un Calendarnuovo oggetto.To change the calendar used by a CultureInfo, set the Calendar property of CultureInfo.DateTimeFormat to a new Calendar.

Si applica a

Vedi anche