Python在当前年份随机选择日期
在Python中,你可以从一年里随机选择一个日期。比如,如果那一年是2010年,返回的日期可能是2010年6月15日。
6 个回答
1
import datetime, time
import random
def year_start(year):
return time.mktime(datetime.date(year, 1, 1).timetuple())
def rand_day(year):
stamp = random.randrange(year_start(year), year_start(year + 1))
return datetime.date.fromtimestamp(stamp)
编辑:在Michael Dunn的回答中提到的序数日期比时间戳要好用得多!不过,有人可能想把序数日期和其他方法结合起来使用。
3
不是直接的方法,但你可以在1月1日的基础上加上随机的天数。我想下面的代码应该适用于公历:
from datetime import date, timedelta
import random
import calendar
# Assuming you want a random day of the current year
firstJan = date.today().replace(day=1, month=1)
randomDay = firstJan + timedelta(days = random.randint(0, 365 if calendar.isleap(firstJan.year) else 364))
21
使用序数日期会简单很多(根据这个,今天的日期是734158):
from datetime import date
import random
start_date = date.today().replace(day=1, month=1).toordinal()
end_date = date.today().toordinal()
random_day = date.fromordinal(random.randint(start_date, end_date))
不过,这种方法在公元1年之前的日期会出问题。