I've recently worked on a task involving time zone offset calculation and it appeared to be much more complicated subject than I would ever have thought. Mainly because of ambiguity, constantly changing data and dependence on the time at which calculation is performed.