TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime, Int32, Int32, DayOfWeek) Metodo

Definizione

Definisce una modifica dell'ora che usa una regola a data mobile, ovvero una modifica dell'ora che avviene in un giorno specifico di una settimana specifica di un determinato mese.Defines a time change that uses a floating-date rule (that is, a time change that occurs on a specific day of a specific week of a specific month).

public:
 static TimeZoneInfo::TransitionTime CreateFloatingDateRule(DateTime timeOfDay, int month, int week, DayOfWeek dayOfWeek);
public static TimeZoneInfo.TransitionTime CreateFloatingDateRule (DateTime timeOfDay, int month, int week, DayOfWeek dayOfWeek);
static member CreateFloatingDateRule : DateTime * int * int * DayOfWeek -> TimeZoneInfo.TransitionTime

Parametri

timeOfDay
DateTime

Ora in cui avviene la modifica dell'ora.The time at which the time change occurs. Questo parametro corrisponde alla proprietà TimeOfDay.This parameter corresponds to the TimeOfDay property.

month
Int32

Mese in cui avviene la modifica dell'ora.The month in which the time change occurs. Questo parametro corrisponde alla proprietà Month.This parameter corresponds to the Month property.

week
Int32

Settimana del mese in cui avviene la modifica dell'ora.The week of the month in which the time change occurs. Il valore può variare da 1 a 5, dove 5 che rappresenta l'ultima settimana del mese.Its value can range from 1 to 5, with 5 representing the last week of the month. Questo parametro corrisponde alla proprietà Week.This parameter corresponds to the Week property.

dayOfWeek
DayOfWeek

Giorno della settimana in cui avviene la modifica dell'ora.The day of the week on which the time change occurs. Questo parametro corrisponde alla proprietà DayOfWeek.This parameter corresponds to the DayOfWeek property.

Restituisce

Dati sulla modifica dell'ora.Data about the time change.

Eccezioni

Il parametro timeOfDay ha un componente di data non predefinito.The timeOfDay parameter has a non-default date component.

In alternativa-or- Il parametro timeOfDay non rappresenta un numero intero di millisecondi.The timeOfDay parameter does not represent a whole number of milliseconds.

In alternativa-or- La proprietà Kind del parametro timeOfDay non è Unspecified.The timeOfDay parameter's Kind property is not Unspecified.

month è minore di 1 o maggiore di 12.month is less than 1 or greater than 12.

-oppure--or- week è minore di 1 o maggiore di 5.week is less than 1 or greater than 5.

In alternativa-or- Il parametro dayOfWeek non è membro dell'enumerazione DayOfWeek.The dayOfWeek parameter is not a member of the DayOfWeek enumeration.

Esempi

Nell'esempio seguente vengono create le transizioni del fuso orario per un fuso orario immaginario usando una regola a data fissa e una regola a data mobile.The following example creates time zone transitions for an imaginary time zone by using both a fixed-date rule and a floating-date rule. La regola di data mobile definisce la regolazione di un fuso orario che inizia alle ore 2:00.The floating-date rule defines a time zone adjustment that starts at 2:00 A.M. L'ultima domenica di marzo e termina alle ore 3:00.on the last Sunday of March and ends at 3:00 A.M. il quarto domenica di ottobre per gli anni 1956 in poi.on the fourth Sunday in October for the years 1956 onward.

// Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
TimeZoneInfo imaginaryTZ;
TimeSpan delta = new TimeSpan(1, 0, 0);
TimeZoneInfo.AdjustmentRule adjustment;
List<TimeZoneInfo.AdjustmentRule> adjustmentList = new List<TimeZoneInfo.AdjustmentRule>();
// Declare transition time variables to hold transition time information
TimeZoneInfo.TransitionTime transitionRuleStart, transitionRuleEnd;
                      
// Define a fictitious new time zone consisting of fixed and floating adjustment rules 
// Define fixed rule (for 1900-1955)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1, 2, 0, 0), 3, 15);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule(new DateTime(1, 1, 1, 3, 0, 0), 11, 15);
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1900, 1, 1), new DateTime(1955, 12, 31), 
             delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment);
// Define floating rule (for 1956- )
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 2, 0, 0), 3, 5, DayOfWeek.Sunday);
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(new DateTime(1, 1, 1, 3, 0, 0), 10, 4, DayOfWeek.Sunday); 
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(new DateTime(1956, 1, 1), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd);
adjustmentList.Add(adjustment); 

// Create fictitious time zone   
imaginaryTZ = TimeZoneInfo.CreateCustomTimeZone("Fictitious Standard Time", new TimeSpan(-9, 0, 0), 
                "(GMT-09:00) Fictitious Time", "Fictitious Standard Time", 
                "Fictitious Daylight Time", adjustmentList.ToArray());
' Declare necessary TimeZoneInfo.AdjustmentRule objects for time zone
Dim imaginaryTZ As TimeZoneInfo
Dim delta As New TimeSpan(1, 0, 0)
Dim adjustment As TimeZoneInfo.AdjustmentRule
Dim adjustmentList As New List(Of TimeZoneInfo.AdjustmentRule)
' Declare transition time variables to hold transition time information
Dim transitionRuleStart, transitionRuleEnd As TimeZoneInfo.TransitionTime
                      
' Define a fictitious new time zone consisting of fixed and floating adjustment rules 
' Define fixed rule (for 1900-1955)
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule(#2:00:00AM#, 3, 15)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule(#3:00:00AM#, 11, 15)
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#1/1/1900#, #12/31/1955#, delta, _
             transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment)
' Define floating rule (for 1956- )
transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#02:00:00AM#, 3, 5, DayOfWeek.Sunday)
transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(#03:00:00AM#, 10, 4, DayOfWeek.Sunday) 
adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(#01/01/1956#, Date.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add(adjustment) 

' Create fictitious time zone   
imaginaryTZ = TimeZoneInfo.CreateCustomTimeZone("Fictitious Standard Time", New TimeSpan(-9, 0, 0), _
                "(GMT-09:00) Fictitious Time", "Fictitious Standard Time", _
                "Fictitious Daylight Time", adjustmentList.ToArray())

Commenti

Questo metodo crea una regola a data mobile, ovvero una modifica dell'ora che si verifica in un giorno specifico di una settimana specifica di un determinato mese.This method creates a floating-date rule (that is, a time change that occurs on a specific day of a specific week of a specific month). Ad esempio, una modifica dell'ora che si verifica l'ultima domenica di ottobre segue una regola a data mobile.For example, a time change that occurs on the last Sunday of October follows a floating-date rule.

Per le transizioni dall'ora solare all'ora legale, l' timeOfDay argomento rappresenta l'ora della transizione nell'ora solare del fuso orario.For transitions from standard time to daylight saving time, the timeOfDay argument represents the time of the transition in the time zone's standard time. Per le transizioni dall'ora legale all'ora solare, rappresenta l'ora della transizione nell'ora legale del fuso orario.For transitions from daylight saving time to standard time, it represents the time of the transition in the time zone's daylight saving time. Si noti che si tratta DateTime di un valore i cui valori di anno, mese e data devono essere tutti uguali a 1.Note that this is a DateTime value whose year, month, and date values must all equal 1.

Si applica a