TimeZoneInfo.TransitionTime.CreateFloatingDateRule(DateTime, Int32, Int32, DayOfWeek) Метод

Определение

Определяет изменение времени, производимое по правилу с плавающей датой (то есть изменение времени, происходящее в указанный день указанной недели определенного месяца).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
Public Shared Function CreateFloatingDateRule (timeOfDay As DateTime, month As Integer, week As Integer, dayOfWeek As DayOfWeek) As TimeZoneInfo.TransitionTime

Параметры

timeOfDay
DateTime

Время, когда происходит изменение времени.The time at which the time change occurs. Этот параметр соответствует свойству TimeOfDay.This parameter corresponds to the TimeOfDay property.

month
Int32

Месяц, когда происходит изменение времени.The month in which the time change occurs. Этот параметр соответствует свойству Month.This parameter corresponds to the Month property.

week
Int32

Неделя месяца, в которую происходит изменение времени.The week of the month in which the time change occurs. Это значение находится в диапазоне от 1 до 5, где 5 представляет последнюю неделю месяца.Its value can range from 1 to 5, with 5 representing the last week of the month. Этот параметр соответствует свойству Week.This parameter corresponds to the Week property.

dayOfWeek
DayOfWeek

День недели, в который происходит изменение времени.The day of the week on which the time change occurs. Этот параметр соответствует свойству DayOfWeek.This parameter corresponds to the DayOfWeek property.

Возвращаемое значение

TimeZoneInfo.TransitionTime

Сведения об изменении времени.Data about the time change.

Исключения

Параметр timeOfDay имеет компонент даты, не являющийся используемым по умолчанию.The timeOfDay parameter has a non-default date component.

-или--or- Параметр timeOfDay не представляет целое число миллисекунд.The timeOfDay parameter does not represent a whole number of milliseconds.

-или--or- Параметр timeOfDay имеет свойство Kind, не равное Unspecified.The timeOfDay parameter's Kind property is not Unspecified.

Параметр month имеет значение меньше 1 или больше 12.month is less than 1 or greater than 12.

-или--or- Параметр week имеет значение меньше 1 или больше 5.week is less than 1 or greater than 5.

-или--or- Параметр dayOfWeek не является членом перечисления DayOfWeek.The dayOfWeek parameter is not a member of the DayOfWeek enumeration.

Примеры

В следующем примере создаются переходы часового пояса для мнимого часового пояса с использованием как правила с фиксированной датой, так и правила с плавающей датой.The following example creates time zone transitions for an imaginary time zone by using both a fixed-date rule and a floating-date rule. Правило с плавающей датой определяет корректировку часового пояса, которая начинается в 2:00 часа утра.The floating-date rule defines a time zone adjustment that starts at 2:00 A.M. за последнее воскресенье марта и заканчивается в 3:00 утра.on the last Sunday of March and ends at 3:00 A.M. четвертое воскресенье октября в течение лет 1956.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())

Комментарии

Этот метод создает правило с плавающей датой (т. е. изменение времени, происходящее в конкретный день определенной недели определенного месяца).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). Например, изменение времени, происходящее в последнем воскресенье октября, следует правилу с плавающей датой.For example, a time change that occurs on the last Sunday of October follows a floating-date rule.

Для переходов со стандартного времени на летнее время timeOfDay аргумент представляет время перехода в стандартном часовом поясе.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. Для переходов с летнего времени на зимнее время оно представляет время перехода на летнее время часового пояса.For transitions from daylight saving time to standard time, it represents the time of the transition in the time zone's daylight saving time. Обратите внимание, что это DateTime значение, значения года, месяца и даты которого должны равняться 1.Note that this is a DateTime value whose year, month, and date values must all equal 1.

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