TimeZoneInfo.TransitionTime.CreateFloatingDateRule Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define un cambio de hora que usa una regla de fecha flotante (es decir, un cambio de hora que se produce en un día concreto de una semana especificada de un mes concreto).
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
Public Shared Function CreateFloatingDateRule (timeOfDay As DateTime, month As Integer, week As Integer, dayOfWeek As DayOfWeek) As TimeZoneInfo.TransitionTime
Parámetros
- timeOfDay
- DateTime
Hora en que se produce el cambio horario. Este parámetro corresponde a la propiedad TimeOfDay.
- month
- Int32
Mes en que se produce el cambio horario. Este parámetro corresponde a la propiedad Month.
- week
- Int32
Semana en que se produce el cambio horario. Su valor puede oscilar entre 1 y 5 (5 representa la última semana del mes). Este parámetro corresponde a la propiedad Week.
- dayOfWeek
- DayOfWeek
Día de la semana en que se produce el cambio horario. Este parámetro corresponde a la propiedad DayOfWeek.
Devoluciones
Datos sobre el cambio horario.
Excepciones
El parámetro timeOfDay
tiene un componente de fecha que no es el predeterminado.
o bien
El parámetro timeOfDay
no representa un número entero de milisegundos.
o bien
La propiedad Kind del parámetro timeOfDay
no es Unspecified.
month
es menor que 1 o mayor que 12.
o bien
week
es menor que 1 o mayor que 5.
o bien
El parámetro dayOfWeek
no es un miembro de la enumeración DayOfWeek.
Ejemplos
En el ejemplo siguiente se crean transiciones de zona horaria para una zona horaria imaginaria mediante una regla de fecha fija y una regla de fecha flotante. La regla de fecha flotante define un ajuste de zona horaria que comienza a las 2:00 a.m. el último domingo de marzo y termina a las 3:00 a.m. el cuarto domingo de octubre para los años 1956 en adelante.
// 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());
let delta = TimeSpan(1, 0, 0)
let adjustmentList = ResizeArray()
// Define a fictitious new time zone consisting of fixed and floating adjustment rules
// Define fixed rule (for 1900-1955)
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFixedDateRule(DateTime(1, 1, 1, 2, 0, 0), 3, 15)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFixedDateRule(DateTime(1, 1, 1, 3, 0, 0), 11, 15)
let adjustment =
TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1900, 1, 1), DateTime(1955, 12, 31), delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add adjustment
// Define floating rule (for 1956- )
let transitionRuleStart = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 2, 0, 0), 3, 5, DayOfWeek.Sunday)
let transitionRuleEnd = TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime(1, 1, 1, 3, 0, 0), 10, 4, DayOfWeek.Sunday)
let adjustment = TimeZoneInfo.AdjustmentRule.CreateAdjustmentRule(DateTime(1956, 1, 1), DateTime.MaxValue.Date, delta, transitionRuleStart, transitionRuleEnd)
adjustmentList.Add adjustment
// Create fictitious time zone
let imaginaryTZ =
TimeZoneInfo.CreateCustomTimeZone("Fictitious Standard Time", 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())
Comentarios
Este método crea una regla de fecha flotante (es decir, un cambio de hora que se produce en un día específico de una semana específica de un mes específico). Por ejemplo, un cambio de hora que se produce el último domingo de octubre sigue una regla de fecha flotante.
En el caso de las transiciones del horario estándar al horario de verano, el timeOfDay
argumento representa la hora de la transición en la hora estándar de la zona horaria. En el caso de las transiciones del horario de verano a la hora estándar, representa la hora de la transición en el horario de verano de la zona horaria. Tenga en cuenta que se trata de un DateTime valor cuyo valor de año, mes y fecha debe ser igual a 1.