Python3 time模块使用,精确到秒以内的应用示例

import time
import datetime     # 测试用,方便

## 模拟程序执行,调用函数这个动作也要消耗时间
def run():
    当前时刻 = datetime.datetime.now()
    print("函数启动时刻", 当前时刻)


## 最后的修正,精确到毫秒
def WAIT(延时):
    T = time.time()
    T_整数部分 = int(T)
    T_小数部分 = T - T_整数部分
    T_修正时间 = 1 - T_小数部分
    time.sleep(T_修正时间)              # 程序执行前2秒的第一秒,修正到下一秒起始0刻
    # 修正后时刻 = time.time()
    time.sleep(延时)                    # 程序执行前2秒的第二秒,修正提前留好程序和网络的时间
    当前时刻 = datetime.datetime.now()  # 测试用,可以删除
    print("程序开始时刻", 当前时刻)     # 模拟最终要运行部分,“程序耗时”指的就是这个
    #run()                              # 模拟最终要运行部分,如果使用函数,函数调用也要消耗一点时间


## 到达服务端的时间精准时间,精确到秒
年 = 2019
月 = 11
日 = 26
时 = 17
分 = 1
秒 = 0
目标时间 = (年, 月, 日, 时, 分, 秒, 0,0,0)
任务时间 = time.mktime(目标时间)
程序耗时 = 0.03                                                  # 预估程序运行到发送数据需要 30ms
网络耗时 = 0.04                                                  # 预估数据发送到目标需要网络 40ms
需要提前时间 = 程序耗时 + 网络耗时                               # 预估需要提前的总时间量
print("要求抵达时间 %d-%d-%d %d:%d:%d" % (年,月,日,时,分,秒))
print("预估程序耗时(秒)", 程序耗时)
print("预估网络耗时(秒)", 网络耗时)
print("需要提前时间(秒)", 需要提前时间)
预定执行时间 = 任务时间 - 需要提前时间
时间类 = time.localtime(预定执行时间)
print("预定执行时间", time.strftime('%Y-%m-%d %H:%M:%S',时间类)+'.'+str(round(预定执行时间-int(预定执行时间), 6)).split('.')[-1])

当前时间 = time.time()
阶段一延时_等待 = 任务时间 - 当前时间 - 2 - int(需要提前时间)    # 当前和任务执行的时间差,多预留2秒及预留程序网络耗时,只要总和的整数部分时间 如 1.2取1 ;2.21取2
if 阶段一延时_等待 > 0:
    阶段二延时_运行 = 1 - (需要提前时间 - int(需要提前时间))     # 精确到秒以内,需要计算小数部分
    time.sleep(阶段一延时_等待)
    WAIT(阶段二延时_运行)
else:
    print("已经来不及了")

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值