Come calcolare la differenza tra fusi orari in VB6

May 12

Come calcolare la differenza tra fusi orari in VB6


Visual Basic è dotato di una serie di strumenti per l'analisi dei fusi orari. Il "TimeZoneInfo" tipo di variabile consente di definire i fusi orari specifici come variabili. Le operazioni consentono di controllare il tempo in questi vari fusi orari e convertire questi tempi per le proprie variabili. Un gruppo separato di operazioni di manipolare orari e le date, trovare la differenza tra i due tempi definiti dai diversi fusi orari.

istruzione

1 Creare un programma di Visual Basic dal seguente codice di Microsoft per elencare gli ID di fuso orario del Registro di sistema:

Le importazioni System.Collections.ObjectModel

Le importazioni System.Globalization

Imports System.IO

Modulo Esempio

Public Sub Main ()

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

fusi orari fioco come ReadOnlyCollection (Di TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones ()

sw fioco come StreamWriter = Nuovo StreamWriter (OutputFileName, False)

Per ogni fuso orario Come TimeZoneInfo in fusi orari

Dim hasDST come booleano = timeZone.SupportsDaylightSavingTime

Dim offsetFromUtc Come TimeSpan = timeZone.BaseUtcOffset

adjustRules Dim () come System.TimeZoneInfo.AdjustmentRule

Dim offsetString As String

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

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

sw.WriteLine ( "Nome standard: {0, 39}", timeZone.StandardName)

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

sw.Write (IIF (hasDST, "*** dispone", "*** non ha"))

sw.WriteLine ( "ora legale ***")

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

sw.WriteLine ( "offset da UTC: {0, 40}", offsetString)

adjustRules = timeZone.GetAdjustmentRules ()

sw.WriteLine ( "Numero di norme di regolazione: {0, 26}", adjustRules.Length)

Se adjustRules.Length> 0 Then

sw.WriteLine ( "Regole di regolazione:")

Per ogni regola Come TimeZoneInfo.AdjustmentRule In adjustRules

Dim transTimeStart Come TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart

Dim transTimeEnd Come TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd

sw.WriteLine ( "Da {0} a {1}", rule.DateStart, rule.DateEnd)

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

Se non transTimeStart.IsFixedDateRule

sw.WriteLine ( "inizia alle {0: t} il {1} ​​di {2 settimane} di {3}", transTimeStart.TimeOfDay, _

transTimeStart.DayOfWeek, _

transTimeStart.Week, _

MonthName (transTimeStart.Month))

sw.WriteLine ( "Ritorna al {0: t} il {1} ​​di {2 settimane} di {3}", transTimeEnd.TimeOfDay, _

transTimeEnd.DayOfWeek, _

transTimeEnd.Week, _

MonthName (transTimeEnd.Month))

Altro

sw.WriteLine ( "inizia alle {0: t} il {1} ​​{2}", transTimeStart.TimeOfDay, _

transTimeStart.Day, _

MonthName (transTimeStart.Month))

sw.WriteLine ( "Ritorna al {0: t} il {1} ​​{2}", transTimeEnd.TimeOfDay, _

transTimeEnd.Day, _

MonthName (transTimeEnd.Month))

Finisci se

Il prossimo

Finisci se

Il prossimo

sw.Close ()

2 Creare il seguente programma Visual Basic:

Public Sub condivisa () principale

Dim timeZone1 As TimeZoneInfo

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

Dim timeZone2 Come TimeZoneInfo

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

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

Console.WriteLine (differenza)

3 Sostituire "Pacific Standard Time" con la prima fuso orario che si desidera confrontare, avendo cura di riprodurre esattamente l'ID dalla lista dal punto 1.

4 Sostituire "Montagna standard Time" con il secondo fuso orario che si desidera confrontare.

5 Eseguire il programma.