Trong Python, bạn có thể chọn một ngày ngẫu nhiên từ một năm. ví dụ. nếu năm 2010 là ngày trả lại có thể là 15/06/2010Python chọn ngày ngẫu nhiên trong năm hiện tại
Trả lời
Đó là đơn giản hơn nhiều để sử dụng ngày thứ (theo đó ngày nay ngày là 734.158):
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))
này sẽ thất bại cho những ngày trước 1AD.
+1 Rất gọn gàng! Tôi không biết những ngày thứ tự là trước :-) Rõ ràng tốt hơn và đẹp hơn sau đó giải pháp timstamp của tôi, mà thậm chí còn có những hạn chế lớn hơn về "ngày trước" ... – plundra
Câu hỏi là "ngày ngẫu nhiên từ một năm", không phải giữa Ngày 1 tháng 1 và hôm nay. – AndiDog
Nhưng tiêu đề là "chọn ngày ngẫu nhiên trong năm hiện tại". Để có được ngày ngẫu nhiên trong một năm tùy ý, bạn chỉ cần tính ngày bắt đầu và kết thúc khác nhau, ví dụ: 'start_date = date (ngày = 1, tháng = 1, năm = MY_YEAR) .toordinal() ' và 'end_date = date (ngày = 31, tháng = 12, năm = MY_YEAR) .toordinal() '. –
Không trực tiếp, nhưng bạn có thể thêm số ngày ngẫu nhiên vào ngày 1 tháng 1. Tôi đoán sau đây nên làm việc cho lịch Gregorian:
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))
Rất tốt. Có một hàm 'isleap()' trong mô-đun 'calendar', nó sẽ tự định nghĩa nó. –
@Daniel: Cảm ơn, bạn nói đúng. Học một cái gì đó mới mỗi ngày trên SO :) Đã không sử dụng mô-đun lịch rất nhiều (chưa). Đã chỉnh sửa câu trả lời của tôi. – AndiDog
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)
Edit: ngày thứ tự như được sử dụng trong Michael Dunns câu trả lời là cách tốt hơn để sử dụng sau đó timestamps! Người ta có thể muốn kết hợp việc sử dụng các mệnh lệnh với điều này mặc dù.
import calendar
import datetime
import random
def generate_random_date(future=True, years=1):
today = datetime.date.today()
#Set the default dates
day = today.day
year = today.year
month = today.month
if future:
year = random.randint(year, year + years)
month = random.randint(month, 12)
date_range = calendar.monthrange(year, month)[1] #dates possible this month
day = random.randint(day + 1, date_range) #1 day in the future
else:
year = random.randint(year, year - years)
month = random.randint(1, month)
day = random.randint(1, day - 1)
return datetime.date(year, month, day)
- 1. Thêm một năm trong PYTHON ngày hiện tại
- 2. lặp ngẫu nhiên trong Python
- 3. Tại sao không ngẫu nhiên() ngẫu nhiên?
- 4. lưu trữ ngày và ngày hiện tại 1 năm kể từ hiện tại trong java
- 5. ngày PHP thêm 1 năm để ngày hiện tại
- 6. ngẫu nhiên lựa chọn hàng trong R
- 7. Lấy ngày giờ hiện tại cho hạt giống số ngẫu nhiên của máy phát điện
- 8. Cách đọc/dev/ngẫu nhiên trong python
- 9. Seed() và số ngẫu nhiên bằng Python
- 10. Ngẫu nhiên trong Jython
- 11. Chọn quả ngẫu nhiên từ MySQL
- 12. PostgreSQL: thay đổi ngày theo số ngày ngẫu nhiên
- 13. Tại sao nó xuất hiện máy phát số ngẫu nhiên của tôi không phải ngẫu nhiên trong C#?
- 14. Cách tạo ngày và giờ ngẫu nhiên giữa hai ngày?
- 15. Chọn các số ngẫu nhiên hiệu quả
- 16. Cách tự động thêm ngày 1 năm vào ngày hiện tại trong SQL Server
- 17. Cách tìm ngày hiện tại của năm bằng PHP?
- 18. Nhận một năm trở lại từ ngày hiện tại
- 19. Năm thả xuống PHP populating năm - cách chọn năm hiện tại
- 20. số ngẫu nhiên không quá ngẫu nhiên
- 21. chọn tệp ngẫu nhiên từ thư mục
- 22. Chọn hàng ngẫu nhiên từ bảng mysql
- 23. PHP MySQL chọn hàng ngẫu nhiên
- 24. Tạo một ngày ngẫu nhiên trong Oracle với DBMS_RANDOM
- 25. Chèn/Cập nhật ngày ngẫu nhiên trong MySQL
- 26. linq chọn một hàng ngẫu nhiên
- 27. chọn hàng n ngẫu nhiên qua linq2sql
- 28. Chọn 5 yếu tố ngẫu nhiên
- 29. Chức năng ngẫu nhiên của Python
- 30. Các phím Python và ngẫu nhiên của 21 char max
Đây là ngày ngẫu nhiên cho bạn: 2010-08-22. Bây giờ bạn không phải tạo một mã. ;) Oh, bạn có nghĩa là một khác nhau mỗi lần. –