Каждый день этого года равновероятен. Генерируется полностью в вашем браузере.
Равномерная случайная дата рассматривает каждый день в диапазоне как равновероятный. 1 января имеет ту же вероятность, что и 14 июля или 31 декабря. Для одного года из 365 дней каждый день имеет шанс 1/365. Для диапазона в 26 лет (с 2000 по 2025) примерно 9 497 дней конкурируют на равных. Генератор автоматически учитывает високосные годы: 29 февраля високосного года появляется как кандидат всякий раз, когда диапазон включает год, кратный 4 (с учётом исключения для столетий). Каждый день получает свою справедливую долю.
В 1582 году Папа Григорий XIII реформировал юлианский календарь для исправления накопившегося смещения в 10 дней. Григорианское правило точно: год является високосным, если делится на 4, за исключением столетий, которые должны делиться на 400. 2000 год был високосным (делится на 400). 1900 год — нет (делится на 100, но не на 400). 2100 год тоже не будет. Это трёхуровневое правило даёт среднюю длину года в 365,2425 дня с точностью до 26 секунд в год. Смещение накапливается до одного полного дня каждые 3 236 лет.
Когда этот инструмент генерирует случайную дату в феврале, он проверяет статус високосного года перед выбором дня. В високосном году февраль имеет 29 кандидатов. В обычном году — 28. Вероятность корректируется автоматически.
Для любой даты вычисление дня недели — это классическая алгоритмическая задача. Джон Хортон Конвей, кембриджский математик, известный игрой «Жизнь», изобрёл алгоритм Судного дня (Doomsday Algorithm) — технику устного счёта, позволяющую определить день недели для любой даты в истории. Ключевая идея в том, что определённые даты всегда приходятся на один и тот же день недели в пределах года (4/4, 6/6, 8/8, 10/10, 12/12 и последний день февраля совпадают по дню недели). Зная этот якорь, остальное вычисляется простой арифметикой. День недели, показанный над каждой сгенерированной датой, определяется встроенным календарным движком вашего браузера, который использует ту же математику.
Формат даты, показанный под календарём — YYYY-MM-DD — соответствует ISO 8601, международному стандарту представления дат. Этот формат правильно сортируется как обычный текст, устраняет неоднозначность между американским (MM/DD) и европейским (DD/MM) порядком месяца и дня и нативно поддерживается во всех языках программирования и базах данных. При нажатии на дату в формате ISO она копируется в буфер обмена, готовая для немедленного использования в коде, электронных таблицах или документации.
Сгенерируйте 23 даты на /date и спросите студентов, совпадут ли у каких-либо двух дат месяц и день. Парадокс дней рождения, введённый Рихардом фон Мизесом в 1939 году, предсказывает примерно 50%-ную вероятность совпадения в группе из 23. Этот контринтуитивный результат удивляет студентов и открывает продуктивную дискуссию о комбинаторной вероятности. Инструмент генерирует даты текущего года, поэтому распределение по месяцам и дням непосредственно соответствует задаче о днях рождения.
Для урока статистики сгенерируйте 50 дат и изучите распределение по месяцам в панели статистики. При равномерном случайном выборе каждый месяц должен получить примерно 1/12 дат. Февраль получает немного меньше (28 или 29 дней против 30 или 31), создавая тонкую неравномерность, которую внимательные студенты заметят. Спросите почему — и разговор естественно перейдёт к взвешенной вероятности и структуре григорианского календаря. Инструмент не требует регистрации, не хранит данные и не устанавливает файлы cookie.
Каждая дата на этой странице генерируется собственным генератором случайных чисел вашего браузера через crypto.getRandomValues(). Сервер доставляет страницу. Ваше устройство выбирает дату. Сервер никогда не узнает, какая дата вам выпала. Ваша история хранится в localStorage на вашем устройстве и находится под вашим контролем.
URL полностью определяет диапазон:
Отправьте ссылку. Получатель увидит тот же диапазон, но другую дату. Сравните, что выберет вселенная.
Ежедневное вдохновение
Работы, отобранные жюри A' Design Award, представленные каждое утро.