Обчислення дат — це процес знаходження різниці між двома календарними датами або додавання/віднімання тривалості від заданої дати. Онлайн-калькулятор дат дозволяє точно визначити кількість днів, тижнів, місяців і років між будь-якими двома датами без ручного підрахунку. Він застосовується у плануванні проектів, договірному праві, фінансовому обліку та розробці програмного забезпечення.
Складність обчислення дат зумовлена нерівномірною структурою григоріанського календаря. Місяці мають 28, 29, 30 або 31 день. Роки мають 365 або 366 днів залежно від правил високосного року. Проста різниця номерів днів дає неправильні результати, коли дати охоплюють різні місяці або роки. Правильні алгоритми різниці дат мають враховувати ці нерівномірності, обробляючи кожну одиницю календаря окремо.
Арифметика дат зустрічається у багатьох контекстах програмування: обчислення терміну дії токенів, планування повторюваних подій, розрахунок дедлайнів за SLA або вимірювання часу між записами журналів. У робочих процесах DevOps це проявляється як вікна дійсності сертифікатів, тривалість заморожування розгортань та тривалість ротацій чергування. Хоча більшість мов надають бібліотеки для роботи з датами, браузерний калькулятор дає миттєві відповіді для швидких перевірок без написання коду, встановлення залежностей або відкриття REPL.
Навіщо використовувати цей калькулятор дат?
Миттєво отримайте розбивку часу між будь-якими двома датами у кількох одиницях одночасно. Без формул, без коду, без реєстрації.
⚡
Миттєвий результат
Оберіть дві дати та побачте різницю в роках, місяцях, тижнях, днях, годинах і хвилинах. Результати оновлюються при зміні будь-якої дати.
🔒
Пріоритет приватності
Всі обчислення виконуються у вашому браузері. Жодні дати не надсилаються на сервер, нічого не зберігається і не реєструється.
📅
Кілька одиниць виведення
Перегляньте результат в усіх одиницях одночасно: загальна кількість днів, тижні, місяці та повна розбивка на роки, місяці і дні. Не потрібно самостійно конвертувати між одиницями.
🔢
Без реєстрації
Використовуйте інструмент одразу. Без входу в систему, без підписки та без обмежень використання. Додайте закладку і перевіряйте дати коли завгодно.
Варіанти використання калькулятора дат
Розробка фронтенду
Перевірте, скільки днів залишилось до дати запуску функції, перевірте логіку таймера зворотного відліку або протестуйте компоненти вибору дат відносно очікуваних інтервалів.
Бекенд-розробка
Перевіряйте вікна терміну дії токенів, розраховуйте тривалість TTL кешу або переконайтесь, що інтервали запланованих завдань дають правильні дати наступного запуску.
DevOps та SRE
Вимірюйте проміжок між мітками часу інцидентів у post-mortem-аналізах, розраховуйте строки закінчення дії сертифікатів або визначайте тривалість заморожування розгортань у святкові періоди.
QA та тестування
Генеруйте тестові дані з конкретними зміщеннями дат, перевіряйте логіку обмеження за віком, обчислюючи точний вік за датами народження, або підтверджуйте правильне оброблення граничних умов для дат.
Управління проектами
Розраховуйте тривалість спринтів, визначайте кількість робочих днів між контрольними точками або оцінюйте строки виконання, підраховуючи календарні дні від початкової дати.
Навчання та освіта
Рахуйте дні до іспиту, визначайте тривалість семестру або перевіряйте відповіді на домашні завдання з арифметики дат на курсах комп'ютерних наук.
Довідник одиниць тривалості дат
Обчислення різниці дат включає одиниці різної тривалості. Місяці та роки не мають фіксованої тривалості, тому проста ділення загальної кількості днів може дати неточні результати. У таблиці нижче наведено кожну одиницю та її діапазон:
Одиниця
Еквівалент
Примітка
1 year
365 or 366 days
Depends on leap year
1 month
28–31 days
Varies by month
1 week
7 days
Fixed
1 day
24 hours
Fixed (ignoring DST transitions)
1 hour
3,600 seconds
Fixed
1 minute
60 seconds
Fixed
Поширені формати дат
При програмній роботі з датами формат визначає, як рядок дати розбирається. Використання неправильного формату спричиняє непомітні помилки. ISO 8601 — найбезпечніший вибір для обміну даними, оскільки він однозначний і враховує часові пояси. У таблиці нижче наведено формати, з якими ви найімовірніше зіткнетесь:
Формат
Приклад
Застосовується в
ISO 8601
2026-04-10T14:30:00Z
APIs, databases, logs
RFC 2822
Fri, 10 Apr 2026 14:30:00 +0000
Email headers, HTTP
Unix timestamp
1775831400
Epoch-based systems
US format
04/10/2026
User-facing (US locale)
European format
10.04.2026
User-facing (EU locale)
Short ISO
2026-04-10
HTML date inputs, SQL DATE
Приклади коду: обчислення днів між датами
Робочі приклади обчислення різниці між двома датами на JavaScript, Python, Go та в командному рядку. Кожен фрагмент демонструє як розрахунок загальної кількості днів, так і розбивку по календарних одиницях там, де мова це підтримує.
JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85
// Get year, month, day breakdown
function dateDiff(a, b) {
let years = b.getFullYear() - a.getFullYear()
let months = b.getMonth() - a.getMonth()
let days = b.getDate() - a.getDate()
if (days < 0) {
months--
days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
}
if (months < 0) { years--; months += 12 }
return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta
start = date(2026, 1, 15)
end = date(2026, 4, 10)
# Total days
diff = (end - start).days
print(diff) # → 85
# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d") # → 0y 2m 26d
# Add 90 days to a date
future = start + timedelta(days=90)
print(future) # → 2026-04-15
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85
# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15
# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15
Поширені запитання
Як обчислити кількість днів між двома датами?
Відніміть ранішу дату від пізнішої, щоб отримати різницю в мілісекундах (або в рідному типі тривалості вашої мови), а потім розділіть на кількість мілісекунд у дні (86 400 000). Це дасть загальну кількість днів. Для календарної розбивки на роки, місяці та дні що залишились, потрібно обробляти кожну одиницю окремо, оскільки місяці мають різну тривалість.
Чи включає різниця дат початкову або кінцеву дату?
За угодою, різниця дат рахує дні між двома датами, виключаючи початкову або кінцеву дату. Якщо обрати 1 січня та 2 січня, результат — 1 день. Якщо ваш сценарій вимагає включного підрахунку (обидва кінці включені), додайте 1 до результату. Цей інструмент дотримується угоди виключення кінця, що використовується більшістю мов програмування.
Як враховуються високосні роки в обчисленнях дат?
Високосний рік додає 29 лютого, роблячи рік 366 днів замість 365. Правило григоріанського високосного року: ділиться на 4, крім столітніх років, які також мають ділитися на 400. Отже, 2024 та 2028 — високосні роки, 1900 не був, а 2000 був. Алгоритми різниці дат, що працюють з календарними одиницями (рік/місяць/день), обробляють це автоматично. Алгоритми, що конвертують у загальну кількість днів, мають враховувати додатковий день, коли діапазон охоплює 29 лютого.
У чому різниця між календарними днями та робочими днями?
Календарні дні рахують кожен день, включаючи вихідні та свята. Робочі дні виключають суботи, неділі та державні свята. Цей інструмент обчислює календарні дні. Щоб перетворити на приблизну кількість робочих днів, помножте загальну кількість календарних днів на 5/7. Для точного підрахунку робочих днів також потрібен календар свят відповідної юрисдикції.
Чи можна обчислити майбутню дату, додавши дні до початкової дати?
Так. У JavaScript створіть об'єкт Date і викличте setDate(getDate() + n). У Python додайте timedelta(days=n) до об'єкта date. У Go використовуйте time.AddDate(0, 0, n). Цей інструмент зосереджений на різниці між двома відомими датами, але ним можна перевірити арифметику: введіть початкову дату та очікувану дату результату і підтвердіть, що загальна кількість днів відповідає доданому зміщенню.
Чому різні інструменти дають різні результати для місяців між датами?
Обчислення місяців є неоднозначним, оскільки місяці мають різну тривалість. Розгляньте 31 січня — 28 лютого: це 1 місяць чи 0 місяців і 28 днів? Різні бібліотеки роблять різний вибір. Найпоширеніша угода (що використовується в Python dateutil, Java Period та цьому інструменті) вважає повним місяцем досягнення того самого дня місяця або останнього дійсного дня коротшого місяця. Завжди перевіряйте, яку угоду використовує ваша бібліотека, порівнюючи результати.
Чи впливають часові пояси на обчислення дат?
Коли ви обираєте дати без компонента часу (лише рік-місяць-день), обчислення не залежить від часового поясу, оскільки воно оперує календарними датами, а не моментами часу. Якщо вам потрібно обчислити різницю між двома конкретними моментами (включаючи час і часовий пояс), слід працювати з повними мітками часу ISO 8601 і конвертувати обидві в UTC перед відніманням. Цей інструмент працює лише з календарними датами.