TimeZoneInfo.TransitionTime.CreateFloatingDateRule Yöntem

Tanım

Kayan tarih kuralı (belirli bir ayın belirli bir haftasının belirli bir gününde gerçekleşen bir saat değişikliği) kullanan bir saat değişikliği tanımlar.

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

Parametreler

timeOfDay
DateTime

Zaman değişikliğinin gerçekleştiği saat. Bu parametre özelliğine TimeOfDay karşılık gelir.

month
Int32

Zaman değişikliğinin gerçekleştiği ay. Bu parametre özelliğine Month karşılık gelir.

week
Int32

Zaman değişikliğinin gerçekleştiği ayın haftası. Değeri, ayın son haftasını temsil eden 5 ile 1 ile 5 arasında olabilir. Bu parametre özelliğine Week karşılık gelir.

dayOfWeek
DayOfWeek

Saat değişikliğinin gerçekleştiği haftanın günü. Bu parametre özelliğine DayOfWeek karşılık gelir.

Döndürülenler

Zaman değişikliğiyle ilgili veriler.

Özel durumlar

parametresi varsayılan timeOfDay olmayan bir tarih bileşenine sahiptir.

-veya-

timeOfDay parametresi milisaniyenin tamsayısını temsil etmez.

-veya-

Parametresinin timeOfDayKind özelliği değildir Unspecified.

month 1'den küçük veya 12'den büyük.

-veya-

week 1'den küçük veya 5'ten büyük.

-veya-

dayOfWeek parametresi sabit listesi üyesi DayOfWeek değil.

Örnekler

Aşağıdaki örnek, hem sabit tarih kuralı hem de kayan tarih kuralı kullanarak sanal saat dilimi için saat dilimi geçişleri oluşturur. Kayan tarih kuralı, Mart ayının son Pazar günü saat 02:00'de başlayan ve 1956 yılı için Ekim ayının dördüncü Pazar günü saat 03:00'te sona erecek bir saat dilimi ayarlamasını tanımlar.

// 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())

Açıklamalar

Bu yöntem kayan tarih kuralı (yani belirli bir ayın belirli bir haftasının belirli bir gününde gerçekleşen bir saat değişikliği) oluşturur. Örneğin, Ekim ayının son Pazar günü gerçekleşen bir saat değişikliği kayan tarih kuralını izler.

Standart saatten gün ışığından timeOfDay yararlanma saatine geçişler için bağımsız değişken, saat diliminin standart saatinde geçişin saatini temsil eder. Gün ışığından yararlanma saatinden standart saate geçişler için, saat diliminin yaz saati geçişinin saatini temsil eder. Bunun yıl, ay ve tarih değerlerinin tümü 1'e eşit olması gereken bir DateTime değer olduğunu unutmayın.

Şunlara uygulanır