Калькулятор дней до дня рождения
Введите дату рождения — калькулятор посчитает, сколько дней осталось до ближайшего дня рождения, какой это будет день недели и сколько лет вам исполнится.
Логика вычислений
Калькулятор по дате рождения определяет ближайший предстоящий день рождения и считает, сколько дней до него осталось, на какой день недели он выпадет и сколько лет в этот день исполнится. Сначала определяется дата ближайшего дня рождения: берётся день и месяц рождения в текущем году.
Д_бл = (Дн; Мес; Год_тек)
где:
- Д_бл — дата ближайшего дня рождения;
- Дн, Мес — день и месяц из введённой даты рождения;
- Год_тек — текущий год.
Если эта дата уже прошла (наступила раньше сегодняшнего дня), ближайший день рождения переносится на следующий год:
если Д_бл < Д_сег, то Год_бл = Год_тек + 1
где:
- Д_сег — сегодняшняя дата (без учёта времени суток);
- Год_бл — год ближайшего дня рождения.
Количество дней до дня рождения — это разница между датой ближайшего дня рождения и сегодняшней датой, выраженная в сутках:
N = (Д_бл − Д_сег) / 86 400 000
где:
- N — количество дней до ближайшего дня рождения, дни;
- 86 400 000 — число миллисекунд в сутках (разность дат берётся в миллисекундах и переводится в дни).
Количество лет, которое исполнится, — это разница между годом ближайшего дня рождения и годом рождения:
A = Год_бл − Год_рожд
где:
- A — возраст, который исполнится в ближайший день рождения, лет;
- Год_рожд — год из введённой даты рождения.
День недели определяется по календарю для даты ближайшего дня рождения Д_бл.
Примеры расчётов
| Дата рождения | Сегодня (Д_сег) | Ближайший день рождения (Д_бл) | Дней до ДР (N) | Возраст (A), лет | Результат | Комментарий |
|---|---|---|---|---|---|---|
| 19.06.2000 | 19.06.2026 | 19.06.2026 | 0 | 26 | Сегодня, исполняется 26 лет | День рождения выпадает на текущий день — N = 0 |
| 20.06.2010 | 19.06.2026 | 20.06.2026 | 1 | 16 | Завтра, 16 лет | Граничный случай — ДР наступает на следующий день |
| 04.07.2008 | 19.06.2026 | 04.07.2026 | 15 | 18 | 15 дней, 18 лет | 11 дней июня + 4 дня июля = 15 |
| 15.08.1990 | 19.06.2026 | 15.08.2026 | 57 | 36 | 57 дней, 36 лет | 11 (июнь) + 31 (июль) + 15 (август) = 57 |
| 31.12.1995 | 19.06.2026 | 31.12.2026 | 195 | 31 | 195 дней, 31 год | ДР в этом же году, но в конце декабря |
| 01.01.1985 | 19.06.2026 | 01.01.2027 | 196 | 42 | 196 дней, 42 года | Дата уже прошла — перенос на год вперёд: Год_бл = 2027 |
