Visual Basic kommer med en rekke verktøy for å analysere tidssoner . Den " TimeZoneInfo " variable typen lar deg definere spesifikke tidssoner som variabler . Operasjoner kan du sjekke tiden i disse ulike tidssoner og konvertere disse tider til sine egne variabler . Et eget sett av operasjoner manipulere tider og datoer , finne forskjellen mellom de to gangene du definerte fra de ulike tidssoner . Instruksjoner
en
Lag et Visual Basic program fra følgende Microsoft- kode for å vise registeret tidssone -ID :
Import System.Collections.ObjectModel
Import System. globalisering
Import System.IO
Module Eksempel
Public Sub Main ( )
Konst OUTPUTFILENAME As String = "C : \\ Temp \\ TimeZoneInfo.txt "
Dim tidssoner Som ReadOnlyCollection ( Of TimeZoneInfo ) = TimeZoneInfo.GetSystemTimeZones ( )
Dim sw Som StreamWriter = Ny StreamWriter ( OUTPUTFILENAME , False )
For hver tidssone som TimeZoneInfo i tidssoner
Dim hasDST As Boolean = timeZone.SupportsDaylightSavingTime
Dim offsetFromUtc Som TimeSpan = timeZone.BaseUtcOffset
Dim adjustRules ( ) Som System.TimeZoneInfo.AdjustmentRule
< p> Dim offsetString As String
sw.WriteLine ( " ID : { 0 }", timeZone.Id )
sw.WriteLine ( "Display Name: { 0 , 40 }", tidssone . DisplayName )
sw.WriteLine ( " Standard Navn: { 0 , 39 }", timeZone.StandardName )
sw.Write ( " Daylight Navn: { 0 , 39 }", tidssone . DaylightName )
sw.Write ( iif ( hasDST , " *** Har ", " *** ikke har "))
sw.WriteLine ( " Daylight Saving Time ** * " )
offsetString = String.Format ( " { 0 } timer , { 1 } minutter " , offsetFromUtc.Hours , offsetFromUtc.Minutes )
sw.WriteLine ( " Offset fra UTC : { 0 , 40 } ", offsetString )
adjustRules = timeZone.GetAdjustmentRules ( )
sw.WriteLine ( " Antall justeringsregler : { 0 , 26 } ", adjustRules.Length )
p Hvis adjustRules.Length > 0 Then
sw.WriteLine ( " Justering Regler: ")
For hver regel som TimeZoneInfo.AdjustmentRule I adjustRules
Dim transTimeStart Som TimeZoneInfo.TransitionTime = rule.DaylightTransitionStart
Dim transTimeEnd Som TimeZoneInfo.TransitionTime = rule.DaylightTransitionEnd
sw.WriteLine ( "From { 0 } til { 1 }", rule.DateStart , rule.DateEnd )
sw.WriteLine ( "Delta : { 0 }", rule.DaylightDelta )
p Hvis ikke transTimeStart.IsFixedDateRule
sw.WriteLine ( " Begins på { 0 : t } den { 1 } av uke { 2 } av { 3 } ", transTimeStart.TimeOfDay , _
transTimeStart.DayOfWeek , _
transTimeStart.Week , _
MonthName ( transTimeStart.Month ) )
sw.WriteLine ( " Slutter på { 0 : t } på { 1 } av uke { 2 } av { 3 }", transTimeEnd.TimeOfDay , _
transTimeEnd.DayOfWeek , _
transTimeEnd.Week , _
MonthName ( transTimeEnd.Month ) )
Else
sw.WriteLine ( "begynner på { 0 : t } den { 1 } { 2 }", transTimeStart.TimeOfDay , _
transTimeStart.Day , _
MonthName ( transTimeStart.Month ) )
sw.WriteLine ( " Slutter på { 0 : t } den { 1 } { 2 }", transTimeEnd.TimeOfDay , _
transTimeEnd.Day , _
MonthName ( transTimeEnd. måned) )
End If
Neste
End If
Neste
sw.Close ( )
2
Opprett følgende Visual Basic program : en
Public Delt Sub ( ) Hoved
Dim timeZone1 Som TimeZoneInfo
timeZone1 = TimeZoneInfo.FindSystemTimeZoneByID ( " Pacific Standard Time" )
Dim timeZone2 Som TimeZoneInfo
timeZone2 = TimeZoneInfo.FindSydtemTimeZoneByID ( " Mountain Standard Time" )
Dim forskjell As Long = DateDiff ( DateInterval.Hour , 1stTimeZone.StandardTime , 2ndTimeZone.StandardTime )
Console.WriteLine ( forskjell)
3
Erstatt " Pacific Standard time" med den første tidssonen du ønsker å sammenligne , ta vare å nøyaktig reprodusere ID fra listen fra trinn 1 .
4
Erstatt " Mountain Standard time" med den andre tidssonen du vil sammenligne .
5
Kjør programmet .