Vorgehensweise bei der Berechnung der Differenz zwischen Zeitzonen in VB6

January 4

Vorgehensweise bei der Berechnung der Differenz zwischen Zeitzonen in VB6

Im Lieferumfang von Visual Basic ist einer Reihe von Tools zur Analyse von Zeitzonen. Der Variablentyp "TimeZoneInfo" können Sie bestimmte Zeitzonen als Variablen zu definieren. Operationen können Sie überprüfen Sie die Zeit in diesen verschiedenen Zeitzonen und konvertieren Sie diese Zeiten in ihre eigenen Variablen. Eine separate Gruppe von Operationen manipulieren Zeiten und Termine, finden den Unterschied zwischen den beiden Zeiten Sie aus den verschiedenen Zeitzonen definiert.

Anweisungen

1 Erstellen Sie eine Visual Basic-Programm von der folgenden Microsoft-Code des Registers Zeitzone IDs auflisten:

System.Collections.ObjectModel importiert

System.Globalization importiert

Imports System.IO

Modul-Beispiel

Public Sub Main()

Const OUTPUTFILENAME As String = "C:\Temp\TimeZoneInfo.txt"

Dim timeZones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()

Dim sw As StreamWriter = New StreamWriter(OUTPUTFILENAME, False)

For Each timeZone As TimeZoneInfo in timeZones

Dim hasDST As Boolean = timeZone.SupportsDaylightSavingTime

Dim offsetFromUtc As TimeSpan = timeZone.BaseUtcOffset

Dim adjustRules() As System.TimeZoneInfo.AdjustmentRule

Dim offsetString As String

sw.WriteLine("ID: {0}", timeZone.Id)

sw.WriteLine(" Display Name: {0, 40}", timeZone.DisplayName)

sw.WriteLine(" Standard Name: {0, 39}", timeZone.StandardName)

sw.Write(" Daylight Name: {0, 39}", timeZone.DaylightName)

sw.Write(iif(hasDST, " ***Has ", " ***Does Not Have "))

sw.WriteLine("Daylight Saving Time***")

offsetString = String.Format("{0} hours, {1} minutes", offsetFromUtc.Hours, offsetFromUtc.Minutes)

sw.WriteLine(" Offset from UTC: {0, 40}", offsetString)

adjustRules = timeZone.GetAdjustmentRules()

sw.WriteLine(" Number of adjustment rules: {0, 26}", adjustRules.Length)

If adjustRules.Length > 0 Then

sw.WriteLine(" Adjustment Rules:")

For Each rule As TimeZoneInfo.AdjustmentRule In adjustRules

Dim transTimeStart As TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart

Dim transTimeEnd As TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd

sw.WriteLine(" From {0} to {1}", rule.DateStart, rule.DateEnd)

sw.WriteLine(" Delta: {0}", rule.DaylightDelta)

If Not transTimeStart.IsFixedDateRule

sw.WriteLine(" Begins at {0:t} on {1} of week {2} of {3}", transTimeStart.TimeOfDay, _

transTimeStart.DayOfWeek, _

transTimeStart.Week, _

MonthName(transTimeStart.Month))

sw.WriteLine(" Ends at {0:t} on {1} of week {2} of {3}", transTimeEnd.TimeOfDay, _

transTimeEnd.DayOfWeek, _

transTimeEnd.Week, _

MonthName(transTimeEnd.Month))

Else

sw.WriteLine(" Begins at {0:t} on {1} {2}", transTimeStart.TimeOfDay, _

transTimeStart.Day, _

MonthName(transTimeStart.Month))

sw.WriteLine(" Ends at {0:t} on {1} {2}", transTimeEnd.TimeOfDay, _

transTimeEnd.Day, _

MonthName(transTimeEnd.Month))

End If

Next

End If

Next

sw.Close()2

Erstellen Sie das folgende Visual Basic-Programm:

Öffentlichen freigegebenen Console.WriteLine-Main

Dim timeZone1 As TimeZoneInfo

timeZone1 = TimeZoneInfo.FindSystemTimeZoneByID("Pacific Standard Time")

Dim timeZone2 As TimeZoneInfo

timeZone2 = TimeZoneInfo.FindSydtemTimeZoneByID("Mountain Standard Time")

Dim difference As Long = DateDiff(DateInterval.Hour, 1stTimeZone.StandardTime, 2ndTimeZone.StandardTime)

Console.WriteLine(difference)3

Ersetzen Sie "Pacific Standard Time" mit der ersten Zeitzone, die Sie vergleichen möchten, kümmert sich um die ID aus der Liste aus Schritt 1 exakt zu reproduzieren.

4 Ersetzen Sie "Mountain Standard Time" durch die zweite Zeitzone, die Sie vergleichen möchten.

5 Führen Sie das Programm.