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

參數

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.

傳回

時間變更的相關資料。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 屬性不是 UnspecifiedThe 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月的最後一個星期日,結束于上午3:00on the last Sunday of March and ends at 3:00 A.M. 1956年10月的第四個星期日。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). 例如,10月最後一個星期日發生的時間變更會遵循浮動日期規則。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一個值,其 year、month 和 date 值必須全部等於1。Note that this is a DateTime value whose year, month, and date values must all equal 1.

適用於