gpt4 book ai didi

python - 在其他两个日期之间生成一个随机日期

转载 作者:IT老高 更新时间:2023-10-28 21:05:34 25 4
gpt4 key购买 nike

如何生成一个必须在另外两个给定日期之间的随机日期?

函数的签名应该是这样的:

random_date("1/1/2008 1:30 PM", "1/1/2009 4:50 AM", 0.34)
^ ^ ^

date generated has date generated has a random number
to be after this to be before this

并会返回一个日期,例如:2/4/2008 7:20 PM

最佳答案

将两个字符串转换为时间戳(以您选择的分辨率,例如毫秒、秒、小时、天等),从后面减去前面的,乘以您的随机数(假设它分布在 range [0 , 1]) 的区别,并再次添加到前面的那个。将时间戳转换回日期字符串,并且您在该范围内有一个随机时间。

Python 示例(输出几乎是您指定的格式,除了 0 填充 - 归咎于美国时间格式约定):

import random
import time

def str_time_prop(start, end, time_format, prop):
"""Get a time at a proportion of a range of two formatted times.

start and end should be strings specifying times formatted in the
given format (strftime-style), giving an interval [start, end].
prop specifies how a proportion of the interval to be taken after
start. The returned time will be in the specified format.
"""

stime = time.mktime(time.strptime(start, time_format))
etime = time.mktime(time.strptime(end, time_format))

ptime = stime + prop * (etime - stime)

return time.strftime(time_format, time.localtime(ptime))


def random_date(start, end, prop):
return str_time_prop(start, end, '%m/%d/%Y %I:%M %p', prop)

print(random_date("1/1/2008 1:30 PM", "1/1/2009 4:50 AM", random.random()))

关于python - 在其他两个日期之间生成一个随机日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com