Как быстро понять, сколько дней и часов прошло между двумя датами
Посчитать время между двумя датами можно вручную, в Excel/Google Таблицах или онлайн‑калькулятором — главное заранее решить: считать ли интервал включительно, нужны ли рабочие дни и нужна ли точность до минут. Ниже — короткие алгоритмы и готовые формулы, которые можно сразу применить.
Оглавление {{TOC_AUTOMATIC}}
В каких единицах и по каким правилам считать
Перед расчётом определите:
- Единицы: дни / часы / минуты / годы и месяцы / комбинированный формат (2 д 5 ч 30 мин).
- Правило включения: интервал между датами обычно считается без включения начальной даты; иногда требуется включительно — уточните задачу.
- Календарные vs рабочие дни: рабочие дни исключают выходные и, при необходимости, праздники.
Совет: зафиксируйте требование в одной фразе — например, «полные календарные дни между A и B» или «часы между меткой времени A и сейчас».
Ручные алгоритмы и быстрые правила
Когда нет доступа к таблицам, используйте очевидные случаи и пошаговый алгоритм.
-
Если даты в одном месяце и году:
- дни = день(B) − день(A)
- часы = дни × 24 (если время одинаковое) или учтите разницу часов отдельно.
-
Общий пошаговый метод:
- посчитайте дни от следующего дня после A до конца месяца A;
- добавьте полные месяцы между датами (по длине каждого месяца);
- добавьте дни с начала месяца до B;
- учтите часы и минуты отдельно.
-
Быстрый трюк для часов/минут:
- переведите весь интервал в часы: дни × 24 + (часы B − часы A) и аналогично для минут.
Частая ошибка — путать включительно/исключительно: интервал 1–2 марта — 1 день (между датами) или 2 дня (включая обе даты). Для отчётности уточняйте правило.
Excel, Google Таблицы и готовые формулы
Практические формулы для быстрого использования. Предположим: A1 — начальная дата (может включать время), B1 — конечная.
- Разница в днях (целая):
- Excel/Google: =B1 - A1
- Если нужны только полные дни: =INT(B1 - A1)
- Дни, часы, минуты в читаемом виде:
- Общая строка (Excel/рус. локаль — ;, англ. — ,): =INT(B1 - A1) & " д " & INT(MOD(B1 - A1;1)*24) & " ч " & INT(MOD((B1 - A1)*24;1)*60) & " мин"
- Всего часов / минут:
- Часы: =(B1 - A1) * 24
- Минуты: =(B1 - A1) * 24 * 60 Округление: =ROUND((B1 - A1) * 24; 0)
- Возраст/стаж (год/месяц/день) — DATEDIF (работает и в Google Таблицах):
- Полные годы: =DATEDIF(A1; B1; "Y")
- Полные месяцы (без учёта лет): =DATEDIF(A1; B1; "M")
- Оставшиеся месяцы: =DATEDIF(A1; B1; "YM")
- Оставшиеся дни: =DATEDIF(A1; B1; "MD")
- Комбинация: =DATEDIF(A1; B1; "Y") & " лет " & DATEDIF(A1; B1; "YM") & " мес " & DATEDIF(A1; B1; "MD") & " дн"
- Рабочие дни:
- Без праздников: =NETWORKDAYS(A1; B1)
- С учётом праздников (список дат в D1:D20): =NETWORKDAYS(A1; B1; D1:D20)
Примечание: Excel хранит дату как целую часть (дни) и дробную (время). Потому умножение на 24/60 даёт часы и минуты.
Если формулы «ругаются», проверьте локаль: в русской Excel/Google Таблицах разделитель аргументов — точка с запятой (;), в англоязычной — запятая (,).
Частые ошибки
- Не зафиксирована политика включения начальной/конечной даты — результат может отличаться на 1 день.
- Смешивание календарных и рабочих дней без явного указания.
- Забыт учет часовых поясов при сравнении меток времени с разными зонами.
- Неправильный формат ячеек: даты как текст → формулы возвращают ошибки.
- Для больших интервалов ручной подсчёт приводит к ошибкам — лучше таблицы.
FAQ
-
Как посчитать «полных» дней между датами?
- Используйте INT(B1 - A1) или DATEDIF(A1; B1; "D") — это даст число полных дней.
-
Нужно учесть праздники — можно ли в Google Таблицах?
- Да, NETWORKDAYS(A1; B1; список_праздников) исключит указанные даты.
-
Как учитывать часовые пояса?
- Приведите обе метки к одному часовому поясу (UTC) перед вычитанием; в таблицах — используйте функцию, которая переводит время в UTC или храните метки в UTC.
-
Можно ли автоматизировать отчёт с разницей дат?
- Да: создайте шаблон с формулами (дни/часы/работ. дни) и просто подставляйте новые A1/B1.
Если нужно, могу подготовить готовый шаблон Excel/Google Таблиц с этими формулами — укажите, какие поля и формат важны.