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.