Tecnología

Inicio

Cómo calcular la diferencia entre las franjas horarias en VB6

Cómo calcular la diferencia entre las franjas horarias en VB6


Visual Basic viene con una serie de herramientas para el análisis de las zonas de tiempo. El "TimeZoneInfo" tipo de variable permite definir zonas horarias específicas como variables. Operaciones permiten comprobar el tiempo en estas diferentes zonas horarias y convertir estos tiempos a sus propias variables. Un conjunto separado de las operaciones de manipular fechas y horas, la búsqueda de la diferencia entre los dos tiempos que definen a partir de las diferentes zonas horarias.

Instrucciones

1 Crear un programa de Visual Basic desde el siguiente código de Microsoft a la lista de los ID de zona horaria de su Registro:

Las importaciones System.Collections.ObjectModel

Las importaciones System.Globalization

Imports System.IO

Ejemplo módulo

Public Sub Main ()

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

TimeZones dévil como ReadOnlyCollection (De TimeZoneInfo) = () TimeZoneInfo.GetSystemTimeZones

sw dévil como StreamWriter = nuevo StreamWriter (OutputFileName, False)

Para cada timeZone Como TimeZoneInfo en zonas horarias

Dim hasDST As Boolean = timeZone.SupportsDaylightSavingTime

Dim offsetFromUtc Como TimeSpan = timeZone.BaseUtcOffset

adjustRules Dim () como System.TimeZoneInfo.AdjustmentRule

Dim como secuencia offsetString

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

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

sw.WriteLine ( "Nombre Estándar: {0, 39}", timeZone.StandardName)

sw.Write ( "Nombre de verano: {0, 39}", timeZone.DaylightName)

sw.Write (IIF (hasDST, "*** Está dotado de", "*** no tiene"))

sw.WriteLine ( "horario de verano ***")

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

sw.WriteLine ( "Desplazamiento desde UTC: {0, 40}", offsetString)

adjustRules = timeZone.GetAdjustmentRules ()

sw.WriteLine ( "Número de reglas de ajuste: {0, 26}", adjustRules.Length)

Si adjustRules.Length> 0 Then

sw.WriteLine ( "Reglas de ajuste:")

Para cada regla Como TimeZoneInfo.AdjustmentRule En adjustRules

Dim transTimeStart Como TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart

Dim transTimeEnd Como TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd

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

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

Si no transTimeStart.IsFixedDateRule

sw.WriteLine ( "comienza en {0: t} del {1} ​​de la semana {2} de {3}", transTimeStart.TimeOfDay, _

transTimeStart.DayOfWeek, _

transTimeStart.Week, _

MonthName (transTimeStart.Month))

sw.WriteLine ( "Finaliza en {0: t} del {1} ​​de la semana {2} de {3}", transTimeEnd.TimeOfDay, _

transTimeEnd.DayOfWeek, _

transTimeEnd.Week, _

MonthName (transTimeEnd.Month))

Más

sw.WriteLine ( "comienza en {0: t} del {1} ​​{2}", transTimeStart.TimeOfDay, _

transTimeStart.Day, _

MonthName (transTimeStart.Month))

sw.WriteLine ( "Finaliza en {0: t} del {1} ​​{2}", transTimeEnd.TimeOfDay, _

transTimeEnd.Day, _

MonthName (transTimeEnd.Month))

Terminara si

Siguiente

Terminara si

Siguiente

sw.Close ()

2 Cree el siguiente programa de Visual Basic:

Public Sub compartido () Principal

Dim timeZone1 As TimeZoneInfo

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

Dim timeZone2 Como TimeZoneInfo

timeZone2 = TimeZoneInfo.FindSydtemTimeZoneByID ( "Tiempo de Montaña")

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

Console.WriteLine (diferencia)

3 Reemplazar "Pacific Standard Time" con la primera zona horaria que desea comparar, teniendo cuidado de reproducir exactamente el ID de la lista de la Etapa 1.

4 Reemplazar "Mountain Standard Time" con la segunda zona horaria que desea comparar.

5 Ejecuta el programa.