Простий спосіб порахувати вік — відняти рік народження від поточного року. Але цей підхід дає неправильний результат для будь-кого, чий день народження в поточному році ще не настав.
Чому просте віднімання років помиляється
Якщо людина народилася 15 грудня 1990 року, а сьогодні 1 січня 2024 року, наївне обчислення 2024 - 1990 дасть 34 роки — хоча насправді людині ще виповниться 34 лише за майже рік. Точний розрахунок має враховувати, чи настав день народження в поточному році, а не лише різницю років.
Правильний алгоритм
Спочатку обчислюють різницю років, а потім порівнюють місяць і день народження з поточними місяцем і днем. Якщо день народження в поточному році ще не настав (місяць менший, або місяць той самий, але день менший), від результату віднімають одиницю.
29 лютого як особливий випадок
Для людей, народжених 29 лютого, у невисокосні роки офіційний день народження зазвичай вважають 28 лютого або 1 березня залежно від юрисдикції — це один із граничних випадків, який часто пропускають при написанні коду розрахунку віку.
Навіщо це потрібно
- Точно розрахувати вік для форм реєстрації з перевіркою мінімального віку.
- Перевірити правильність обробки граничних випадків (29 лютого, день народження сьогодні) у своєму коді.
- Швидко дізнатися точний вік у роках, місяцях і днях за датою народження.
Чому в деяких юрисдикціях повноліття настає за день до дня народження
У праві низки країн (зокрема Велика Британія) діє принцип "немає дробів дня" — людина вважається такою, що досягла певного віку, з першої миті дня, що передує річниці народження, оскільки день народження зараховується як повний прожитий день. Це суто юридична тонкість, яка не збігається з побутовим розумінням віку і має значення, наприклад, для визначення точної дати настання виборчого права чи повноліття.