php获取一周内随机时间,python获取指定时间段内的随机不重复时间点的实现代码...

这篇文章介绍python获取指定时间段内的随机不重复时间点的实现代码

场景1:取N个07:30:00-09:30:33之间的随机时间。

下面是我的代码:#2016-12-10 7:06:29 codegay

import random

st = "07:30:00"

et = "09:30:33"

def time2seconds(t):

h,m,s = t.strip().split(":")

return int(h) * 3600 + int(m) * 60 + int(s)

def seconds2time(sec):

m,s = pmod(sec,60)

h,m = pmod(m,60)

return "%02d:%02d:%02d" % (h,m,s)

sts = time2seconds(st) #sts==27000

ets = time2seconds(et) #ets==34233

rt = random.sample(range(sts,ets),10)

#rt == [28931, 29977, 33207, 33082, 31174, 30200, 27458, 27434, 33367, 30450]

rt.sort() #对时间从小到大排序

for r in rt:

print(seconds2time(r))

"""

输出:

07:43:12

07:54:31

08:08:33

08:27:46

08:46:53

08:48:17

08:55:20

08:59:16

09:10:23

09:15:58

"""

从代码中可以发现思路是把时间转成秒数后,那么就可以用range生07:30-09:30之间的时间秒数,再用random.sample从中取出个N个秒数,最后再把秒数转成所需要的时间格式。

场景2: 时间大小比较和时间范围的判断>>> "09:30:00" > "9:30:00"

False

>>> "09:30:00" == "9:30:00"

False

基于字符串的判断可能会出现像上面的情况,我感觉统一转成数字后再计算更可靠。

场景3:时间转成秒数后刚好等于1970年1月1日的时间戳

UNIX时间,或称POSIX时间是UNIX或类UNIX系统使用的时间表示方式:从协调世界时1970年1月1日0时0分0秒起至现在的总秒数。

任意当天24小时内的时间转成秒数后都刚好等于UTC 1970年1月1日的时间戳。所以有需要的话可以使用编程语言内置的时间戳函数进行转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值