如何计算一组用户的平均时区?

时间:2018-07-21 02:43:33

标签: internationalization timezone gmt

爱丽丝住在俄罗斯(GMT + 7)。鲍勃住在阿拉斯加(GMT-8)。它们相对较近,相距不到200英里。 https://www.google.com/maps/@55.5067319,-173.8489655,3z

爱丽丝和鲍勃应该根据他们所在时区的平均时间在中午见面,以使双方都尽可能少地感到不便。如果我们将GMT + 7与GMT-8的平均值相乘,就会得出GMT-0.5。

这不起作用,因为对于两者而言,基于GMT-0.5的正午计算将更接近午夜,因为时区是线性而非循环计算的。

有人知道图书馆可以解决Alice和Bob的问题,并允许Charlie和Dave加入会议吗?

1 个答案:

答案 0 :(得分:1)

您的GMT-0.5平均值是错误的,因为要获取时差,我们必须考虑24小时周期以及GMT在范围两端之间的一半这一事实。

GMT + 0700比GMT-0800早15小时,但由于15大于12(比地球大一半),因此最短的时差实际上是9小时,但在不同的日子。

数学很简单。用伪代码:

offset = abs( 7 - -8 )
if offset > 12 then offset = 24 - offset

提供偏移== 9。

因此,双方最接近当地正午的时间是俄罗斯爱丽丝正午前4.5小时(上午7:30)和阿拉斯加鲍勃正午后4.5小时(下午16:30),但在前一天,因为俄罗斯在未来!

这个中点是我们可以称为GMT+1130的虚假时间偏移,因此Bob和Alice会安排在00:30 GMT见面。


为了进行比较:timeanddate.com有一个会议计划者。四舍五入到一个小时,并为克拉斯诺亚尔斯克(Krasnoyarsk)和安克雷奇(Anchorage)的最佳重叠时间是上午8点/下午5点。

请参见https://www.timeanddate.com/worldclock/meetingtime.html?iso=20180724&p1=372&p2=18


学术观点:这两个时区彼此之间不仅只有200英里。他们相距数千英里。俄罗斯的东部地区实际上比格林尼治标准时间早12小时。