TimeZoneInfo.HasSameRules(TimeZoneInfo) 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.
Geçerli nesnenin ve başka bir TimeZoneInfo nesnenin aynı ayarlama kurallarına sahip olup olmadığını gösterir.
public:
bool HasSameRules(TimeZoneInfo ^ other);
public bool HasSameRules (TimeZoneInfo other);
member this.HasSameRules : TimeZoneInfo -> bool
Public Function HasSameRules (other As TimeZoneInfo) As Boolean
Parametreler
- other
- TimeZoneInfo
Geçerli TimeZoneInfo nesneyle karşılaştıracak ikinci bir nesne.
Döndürülenler
true
iki saat diliminin aynı ayarlama kuralları ve özdeş bir temel uzaklık varsa; aksi takdirde , false
.
Özel durumlar
other
parametresidirnull
.
Örnekler
Genellikle, Windows'daki kayıt defterinde ve Linux ve macOS'taki ICU Kitaplığı'nda tanımlanan saat dilimleri, Eşgüdümlü Evrensel Saat 'ten (UTC) aynı uzaklığa ve aynı ayarlama kurallarına sahiptir. Aşağıdaki örnek, konsola bu saat dilimlerinin listesini görüntüler.
ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones();
TimeZoneInfo[] timeZoneArray = new TimeZoneInfo[timeZones.Count];
timeZones.CopyTo(timeZoneArray, 0);
// Iterate array from top to bottom
for (int ctr = timeZoneArray.GetUpperBound(0); ctr >= 1; ctr--)
{
// Get next item from top
TimeZoneInfo thisTimeZone = timeZoneArray[ctr];
for (int compareCtr = 0; compareCtr <= ctr - 1; compareCtr++)
{
// Determine if time zones have the same rules
if (thisTimeZone.HasSameRules(timeZoneArray[compareCtr]))
{
Console.WriteLine("{0} has the same rules as {1}",
thisTimeZone.StandardName,
timeZoneArray[compareCtr].StandardName);
}
}
}
let timeZones = TimeZoneInfo.GetSystemTimeZones()
let timeZoneArray = Array.ofSeq timeZones
// Iterate array from top to bottom
for ctr = timeZoneArray.GetUpperBound 0 - 1 downto 0 do
// Get next item from top
let thisTimeZone = timeZoneArray[ctr]
for compareCtr = 0 to ctr - 1 do
// Determine if time zones have the same rules
if thisTimeZone.HasSameRules timeZoneArray[compareCtr] then
printfn $"{thisTimeZone.StandardName} has the same rules as {timeZoneArray[compareCtr].StandardName}"
Dim timeZones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
Dim timeZoneArray(timeZones.Count - 1) As TimeZoneInfo
timeZones.CopyTo(timeZoneArray, 0)
'Dim arrayPtr As Integer = 1
' Iterate array from top to bottom
For ctr As Integer = timeZoneArray.GetUpperBound(0) To 1 Step -1
' Get next item from top
Dim thisTimeZone As TimeZoneInfo = timeZoneArray(ctr)
For compareCtr As Integer = 0 To ctr - 1
' Determine if time zones have the same rules
If thisTimeZone.HasSameRules(timeZoneArray(compareCtr)) Then
Console.WriteLine("{0} has the same rules as {1}", _
thisTimeZone.StandardName, _
timeZoneArray(compareCtr).StandardName)
End If
Next
Next
Açıklamalar
TimeZoneInfo.Equals(TimeZoneInfo) yönteminde olduğu gibi yöntemi de HasSameRules iki saat diliminin aynı temel uzaklık (özellik tarafından BaseUtcOffset tanımlandığı gibi) ve aynı ayarlama kurallarına sahip olup olmadığını gösterir. yönteminden TimeZoneInfo.Equals(TimeZoneInfo) farklı olarak, HasSameRules saat dilimi tanımlayıcılarını karşılaştırmaz (özelliği tarafından Id tanımlandığı gibi).