hi tim, thanks.

Sounds like your calculation is wrong, but you neglected to tell us what it is. Try this:
target_time = source_time + ( target_zone - source_zone ) * 3600

i think there were a set of parentheses missing after "+" and at the end, but even then it didn't work always, because some UTC values are negative and some positive. i found a solution that seems to work, but i'm sure there must be a simpler way...

If ( Left ( timezone ; 1 ) = "-" ;
starttime + ( ( "-5" + Middle ( timezone ; 2 ; 2 ) ) * 3600 ) ;
starttime + ( ( "-5" - Middle ( timezone ; 2 ; 2 ) ) * 3600 ) )

e.g., using *local* starttime 18:00, the target_time (montréal UTC -5) for the following time zones (standard, not daylight) should give:

melbourne (+10) = 03:00 montréal (-5)
berlin (+1) = 12:00 montréal (-5)
london (+0) = 13:00 montréal (-5)
montréal (-5) = 18:00 montréal (-5)
vancouver (-8) = 21:00 montréal (-5)

Reply via email to