TimeZoneInfo.TransitionTime.CreateFloatingDateRule Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Kayan tarih kuralı (belirli bir ayın belirli bir haftasının belirli bir gününde gerçekleşen 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.
- week
- Int32
Saat değişikliğinin gerçekleştiği ayın haftası. Değeri 1 ile 5 arasında değişebilir ve 5 ayın son haftasını temsil eder. 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 tam sayısını temsil etmez.
-veya-
Parametresinin timeOfDay
Kind ö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 tarihli bir kural hem de kayan tarih kuralı kullanarak sanal bir saat dilimi için saat dilimi geçişleri oluşturur. Kayan tarih kuralı, 1956 yılı için Mart ayının son Pazar günü saat 02:00'de başlayan ve 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 bir kayan tarih kuralı (başka bir ifadeyle, 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 yaz saati uygulamasına geçişler için bağımsız değişken, timeOfDay
saat diliminin standart saatinde geçişin saatini temsil eder. Gün ışığından yararlanma saatinden standart saate geçişler için, saat diliminin gün ışığından yararlanma saatinde geçişin 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.