我有一个应用程序,我希望它具有同步Windows系统时钟的功能,但只设置分钟,除非例如系统时间是13:58而时间服务器是14:02,在这种情况下小时也应该改变。问题是,我不想使用时间服务器小时/天等因为我希望用户能够将时钟设置为任何时间(无论时区如何),但仍然要同步。
例如,即使Windows时区是PST并且用户将来设置时钟5小时而不更改时区,我希望系统正确同步,将来保持5小时。
是否有算法可以计算是否应该根据分钟设置小时前进或后退一小时但忽略任何时区因素?如果系统是15:59且服务器是16:02,则系统应设置为16:02而不是15:02(如果它只更改了分钟,则会设置为16:02)。如果系统是15:28且服务器是16:02,则系统应设置为15:02。我已经考虑了一段时间了,但似乎无法理解我将如何去做它!
我已经有了获取时间服务器日期和时间的代码,以及系统时间(我使用的是delphi),所以这只是计算如何处理它的问题。
感谢您的时间。
答案 0 :(得分:3)
听起来您真正想要的只是将客户端计算机的UTC时间与服务器的UTC时间同步,而不管服务器或客户端的时区。
您需要找到基于UTC获取和设置时间的API。
那可能不是你想要的,因为我没有完全理解你的用户在未来5小时内设置他们的机器的问题......
答案 1 :(得分:2)
不要忘记,有一些时区不在小时边界...如果用户的时钟是13:30而服务器是在13:00你怎么知道用户很简单不在纽芬兰比(比如)蒙特利尔。
我认为Jon对UTC的建议是可行的方法。
答案 2 :(得分:2)
答案 3 :(得分:0)
你可以只比较分钟数,如果你是> 55并且系统是< 05,那么递增你的小时。对其他边缘条件也做类似的事情。