[python]利用将要睡眠的时间巧妙地定时运行

#    有一些程序需要定时运行,于是一个睡眠程序就出现了。这个程序的用途
# 就是运行程序之后调用,然后睡眠。这样程序就会在指定的时间开始运行了。
#    这里获取的时第二天指定时间距离现在的秒数。其实根据测试,指定的时间
# 也可以是负的或者超过24小时的。如此一来,其实变通一下就可以实现很多的需要。
import time
def getSecondsTillNextDayAt(t='11:00'):
    temp_time = list(time.localtime())
    temp = t.split(':')
    temp_time[2]+=1
    temp_time[3]=int(temp[0].strip())
    temp_time[4]=int(temp[1].strip())
    end = time.mktime(temp_time)
    interval = end - time.time()
    return interval
# 有一些时候,需要在指定的星期日子里处理
# 于是又有了一个很笨的方法了
# 本来想用datetime里的timedelta的,弄了半天没有结果
# 只要用这个笨笨的办法先将就着了
def GetSecondsTillNextWeekAt(Time='13:00', Week='7'):
    TempTime = list(time.localtime())
    temp = Time.split(':')
    week = int(Week.strip()) - 1
    hour = int(temp[0].strip())
    second = int(temp[1].strip())
    if TempTime[-3] < week:
        TempTime[2] += week - TempTime[-3]
    elif TempTime[-3] > week:
        TempTime[2] += 7 - TempTime[-3] + week
    else:
        TempTime[2] += 7
    
    TempTime[3] = hour
    TempTime[4] = second
    End = time.mktime(TempTime)
    interval = End - time.time()
    return interval


#######################################
def testGetSecondsTillNextDayAt():
    # 下面的差应该是相差3600
    print getSecondsTillNextDayAt()
    print getSecondsTillNextDayAt('10:00')
    return
testGetSecondsTillNextDayAt()
# output
#92939.747
#89339.747


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遗落尘污

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值