timezonediff.frink

View or download timezonediff.frink in plain text format


// Function to determine the difference between two time zones.  This is
// somewhat tricky because the difference between time zones may change several
// times over the course of a year because of Daylight Saving / Summer Time
// changes which may not occur at the same time.  This means that the exact
// date/time for which the conversion is to happen must be specified.
//
// This function takes three arguments:
//  [z1, z2, time]
// Where z1 and z2 are strings indicating the name of a timezone and
// the optional argument time is a string indicating the date and time for
// which the conversion is to be calculated.  The default is to use the
// current time in timezone z1.
// The return value is the time to be *added* to the local time in timezone z1
// to get the local time in timezone z2.
timezonediff[z1, z2, time=undef] :=
{
   if (time == undef)
   {
      fmt = ### yyyy-MM-dd HH:mm:ss.SSS ###
      time = now[] -> [fmt, z1]
   }
   t1 = parseDate["$time $z1"]
   t2 = parseDate["$time $z2"]
   return t1 - t2
}


View or download timezonediff.frink in plain text format


This is a program written in the programming language Frink.
For more information, view the Frink Documentation or see More Sample Frink Programs.

Alan Eliasen was born 17591 days, 17 hours, 47 minutes ago.