How to Calculate the Difference Between Time Zones in VB6

Written by ryan menezes
  • Share
  • Tweet
  • Share
  • Pin
  • Email
How to Calculate the Difference Between Time Zones in VB6
Hours separate countries that have different time zones. (black magnifier on world map with time zones image by Anatoly Tiplyashin from

Visual Basic comes with a number of tools for analysing time zones. The "TimeZoneInfo" variable type lets you define specific time zones as variables. Operations let you check the time in these various time zones and convert these times to their own variables. A separate set of operations manipulate times and dates, finding the difference between the two times you defined from the different time zones.

Skill level:


  1. 1

    Create a Visual Basic program from the following Microsoft code to list your registry's time zone IDs:

    Imports System.Collections.ObjectModel

    Imports System.Globalization

    Imports System.IO

    Module Example

    Public Sub Main()

      Const OUTPUTFILENAME As String = "C:\Temp\TimeZoneInfo.txt"
      Dim time Zones As ReadOnlyCollection(Of TimeZoneInfo) = TimeZoneInfo.GetSystemTimeZones()
      Dim sw As StreamWriter = New StreamWriter(OUTPUTFILENAME, False)
      For Each timeZone As TimeZoneInfo in time Zones
         Dim hasDST As Boolean = timeZone.SupportsDaylightSavingTime
         Dim offsetFromUtc As TimeSpan = timeZone.BaseUtcOffset
         Dim adjust Rules() As System.TimeZoneInfo.AdjustmentRule
         Dim offset String 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***")
         offset String = String.Format("{0} hours, {1} minutes", offsetFromUtc.Hours, offsetFromUtc.Minutes)
         sw.WriteLine("   Offset from UTC: {0, 40}", offset String)
         adjust Rules = 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 adjust Rules
               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, _
                  sw.WriteLine("      Ends at {0:t} on {1} of week {2} of {3}", transTimeEnd.TimeOfDay, _
                                                                                transTimeEnd.DayOfWeek, _
                                                                                transTimeEnd.Week, _
                  sw.WriteLine("      Begins at {0:t} on {1} {2}", transTimeStart.TimeOfDay, _
                                                                 transTimeStart.Day, _
                  sw.WriteLine("      Ends at {0:t} on {1} {2}", transTimeEnd.TimeOfDay, _
                                                               transTimeEnd.Day, _
               End If
         End If
  2. 2

    Create the following Visual Basic program:

    Public Shared Sub() 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)
  3. 3

    Replace "Pacific Standard Time" with the first time zone you want to compare, taking care to exactly reproduce the ID from the list from Step 1.

  4. 4

    Replace "Mountain Standard Time" with the second time zone you want to compare.

  5. 5

    Run the program.

Don't Miss

  • All types
  • Articles
  • Slideshows
  • Videos
  • Most relevant
  • Most popular
  • Most recent

No articles available

No slideshows available

No videos available

By using the site, you consent to the use of cookies. For more information, please see our Cookie policy.