Python在当前年份随机选择日期

9 投票
6 回答
15003 浏览
提问于 2025-04-16 10:22

在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年之前的日期会出问题。

撰写回答