修复autoSynchroTime文件未提交问题

pull/66/head
wenxianping 2019-01-03 09:25:54 +08:00
parent 4d07e5369a
commit af5ece8c3e
2 changed files with 62 additions and 12 deletions

53
config/AutoSynchroTime.py Normal file
View File

@ -0,0 +1,53 @@
# coding=utf-8
import os
import platform
import ntplib
import datetime
def autoSynchroTime():
"""
同步北京时间执行时候请务必用sudosudosudo 执行否则会报权限错误windows打开ide或者cmd请用管理员身份
:return:
"""
c = ntplib.NTPClient()
hosts = ['edu.ntp.org.cn', 'tw.ntp.org.cn', 'us.ntp.org.cn', 'cn.pool.ntp.org', 'jp.ntp.org.cn']
for host in hosts:
try:
response = c.request(host)
if response:
break
except Exception as e:
print(u"时区获取异常:{0}".format(e))
pass
current_time = response.tx_time
_date, _time = str(datetime.datetime.fromtimestamp(current_time))[:22].split(' ')
print(u"正在同步时间请耐心等待30秒左右")
print(u"系统当前时间{}".format(str(datetime.datetime.now())[:22]))
system = platform.system()
if system == "Windows": # windows 同步时间未测试过参考地址https://www.jianshu.com/p/92ec15da6cc3
print(u"北京标准时间", _date, _time)
a, b, c = _time.split(':')
c = float(c) + 0.5
_time = "%s:%s:%s" % (a, b, c)
os.system('date %s && time %s' % (_date, _time))
else: # mac同步地址如果ntpdate未安装brew install ntpdate linux 安装 yum install -y ntpdate
os.system('ntpdate time.apple.com')
print(u"同步后时间:{}".format(str(datetime.datetime.now())[:22]))
if __name__ == '__main__':
autoSynchroTime()

View File

@ -183,23 +183,20 @@ class select:
try:
num += 1
check_user.sendCheckUser()
if time.strftime('%H:%M:%S', time.localtime(time.time())) > "23:00:00" or time.strftime('%H:%M:%S',
time.localtime(
time.time())) < "06:00:00":
print(ticket.REST_TIME)
while 1:
time.sleep(1)
if "06:00:00" < time.strftime('%H:%M:%S', time.localtime(time.time())) < "23:00:00":
print(ticket.REST_TIME_PAST)
self.call_login()
break
start_time = datetime.datetime.now()
now = datetime.datetime.now()
if now.hour >= 23 or now.hour < 6:
print(u"12306休息时间本程序自动停止,明天早上七点将自动运行")
open_time = datetime.datetime(now.year, now.month, now.day, 6)
if open_time < now:
open_time += datetime.timedelta(1)
time.sleep((open_time - now).seconds)
self.call_login()
if self.order_model is 1:
autoSynchroTime()
sleep_time_s = 0.1
sleep_time_t = 0.5
# 测试了一下有微妙级的误差应该不影响测试结果2019-01-02 22:30:00.004555
if start_time.strftime("%M:%S") == "29:55" or start_time.strftime("%M:%S") == "59:55":
if now.strftime("%M:%S") == "29:55" or now.strftime("%M:%S") == "59:55":
print(u"预售整点模式卡点中")
time.sleep(5)
print(u"预售模式执行")