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)