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.