Портал о ремонте ванной комнаты. Полезные советы

Сколько дней прошло с даты первой мировой. Вычисление разности дат в Microsoft Excel

Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию РАЗНДАТ() , английский вариант DATEDIF().

Функции РАЗНДАТ() нет в справке EXCEL2007 и в Мастере функций (SHIFT + F 3 ), но она работает, хотя и не без огрех.

Синтаксис функции:

РАЗНДАТ(начальная_дата; конечная_дата; способ_измерения)

Аргумент начальная_дата должна быть раньше аргумента конечная_дата .

Аргумент способ_измерения определяет, как и в каких единицах будет измеряться интервал между начальной и конечной датами. Этот аргумент может принимать следующие значения:

Значение

Описание

разница в днях

разница в полных месяцах

разница в полных годах

разница в полных месяцах без учета лет

разница в днях без учета месяцев и лет
ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение, если день начальной даты больше дня конечной даты (например, в EXCEL 2007 при сравнении дат 28.02.2009 и 01.03.2009 результат будет 4 дня, а не 1 день). Избегайте использования функции с этим аргументом. Альтернативная формула приведена ниже.

разница в днях без учета лет
ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение. Избегайте использования функции с этим аргументом.

Ниже приведено подробное описание всех 6 значений аргумента способ_измерения , а также альтернативных формул (функцию РАЗНДАТ() можно заменить другими формулами (правда достаточно громоздкими). Это сделано в файле примера ).

В файле примера значение аргумента начальная_дата помещена в ячейке А2 , а значение аргумента конечная_дата – в ячейке В2 .

1. Разница в днях ("d")

Формула =РАЗНДАТ(A2;B2;"d") вернет простую разницу в днях между двумя датами.

Пример1: начальная_дата 25.02.2007, конечная_дата 26.02.2007
Результат: 1 (день).

Этот пример показыват, что при подсчете стажа необходимо использовать функцию РАЗНДАТ() с осторожностью. Очевидно, что если сотрудник работал 25 и 26 февраля, то отработал он 2 дня, а не 1. То же относится и к расчету полных месяцев (см. ниже).

Пример2: начальная_дата 01.02.2007, конечная_дата 01.03.2007
Результат: 28 (дней)

Пример3: начальная_дата 28.02.2008, конечная_дата 01.03.2008
Результат: 2 (дня), т.к. 2008 год - високосный

Примечание : Если интересуют только рабочие дни, то к между двумя датами можно посчитать по формуле =ЧИСТРАБДНИ(B2;A2)

2. Разница в полных месяцах ("m")

Формула =РАЗНДАТ(A2;B2;"m") вернет количество полных месяцев между двумя датами.

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2007
Результат: 1 (месяц)

Пример2: начальная_дата 01.03.2007, конечная_дата 31.03.2007
Результат: 0

При расчете стажа, считается, что сотрудник отработавший все дни месяца - отработал 1 полный месяц. Функция РАЗНДАТ() так не считает!

Пример3: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат: 25 месяцев


=12*(ГОД(B2)-ГОД(A2))-(МЕСЯЦ(A2)-МЕСЯЦ(B2))-(ДЕНЬ(B2)<ДЕНЬ(A2))

Внимание : В справке MS EXCEL (см. раздел Вычисление возраста) имеется кривая формула для вычисления количества месяце между 2-мя датами:

=(ГОД(ТДАТА())-ГОД(A3))*12+МЕСЯЦ(ТДАТА())-МЕСЯЦ(A3)

Если вместо функции ТДАТА() - текущая дата использовать дату 31.10.1961, а в А3 ввести 01.11.1962, то формула вернет 13, хотя фактически прошло 12 месяцев и 1 день (ноябрь и декабрь в 1961г. + 10 месяцев в 1962г.).

3. Разница в полных годах ("y")

Формула =РАЗНДАТ(A2;B2;"y") вернет количество полных лет между двумя датами.

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат: 2 (года)

Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009
Результат: 1 (год)

Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))<=B2;
ГОД(B2)-ГОД(A2);ГОД(B2)-ГОД(A2)-1)

4. Разница в полных месяцах без учета лет ("ym")

Формула =РАЗНДАТ(A2;B2;"ym") вернет количество полных месяцев между двумя датами без учета лет (см. примеры ниже).

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат: 1 (месяц), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.02.2009 (год начальной даты заменяется годом конечной даты, т.к. 01.02 меньше чем 01.03)

Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009
Результат: 11 (месяцев), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.04.2008 (год начальной даты заменяется годом конечной даты за вычетом 1 года , т.к. 01.04 больше чем 01.03)

Формула может быть заменена альтернативным выражением:
=ОСТАТ(C7;12)
В ячейке С7 должна содержаться разница в полных месяцах (см. п.2).

5. Разница в днях без учета месяцев и лет ("md")

Формула =РАЗНДАТ(A2;B2;"md") вернет количество дней между двумя датами без учета месяцев и лет. Использовать функцию РАЗНДАТ() с этим аргументом не рекомендуется (см. примеры ниже).

Пример1: начальная_дата 01.02.2007, конечная_дата 06.03.2009
Результат1: 5 (дней), т.к. сравниваются конечная дата 06.03.2009 и модифицированная начальная дата 01.03 .2009 (год и месяц начальной даты заменяется годом и месяцем конечной даты, т.к. 01 меньше чем 06)

Пример2: начальная_дата 28.02.2007, конечная_дата 28.03.2009
Результат2: 0, т.к. сравниваются конечная дата 28.03.2009 и модифицированная начальная дата 28.03 .2009 (год и месяц начальной даты заменяется годом и месяцем конечной даты)

Пример3: начальная_дата 28.02.2009, конечная_дата 01.03.2009
Результат3: 4 (дня) - совершенно непонятный и НЕПРАВИЛЬНЫЙ результат. Ответ должен быть =1. Более того, результат вычисления зависит от версии EXCEL.

Версия EXCEL 2007 с SP3:

Результат – 143 дня! Больше чем дней в месяце!

Версия EXCEL 2007:

Разница между 28.02.2009 и 01.03.2009 – 4 дня!

Причем в EXCEL 2003 с SP3 формула возвращает верный результат 1 день. Для значений 31.12.2009 и 01.02.2010 результат вообще отрицательный (-2 дня)!

Не советую использовать формулу с вышеуказанным значением аргумента. Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2);
ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2);
ДЕНЬ(B2)-ДЕНЬ(A2))

Данная формула лишь эквивалетное (в большинстве случаев) выражение для РАЗНДАТ() с параметром md. О корректности этой формуле читайте в разделе "Еще раз о кривизне РАЗНДАТ()" ниже.

6. Разница в днях без учета лет ("yd")

Формула =РАЗНДАТ(A2;B2;"yd") вернет количество дней между двумя датами без учета лет. Использовать ее не рекомендуется по причинам, изложенным в предыдущем пункте.

Результат, возвращаемый формулой =РАЗНДАТ(A2;B2;"yd") зависит от версии EXCEL.

Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))>B2;
B2-ДАТА(ГОД(B2)-1;МЕСЯЦ(A2);ДЕНЬ(A2));
B2-ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2)))

Еще раз о кривизне РАЗНДАТ()

Найдем разницу дат 16.03.2015 и 30.01.15. Функция РАЗНДАТ() с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней. Так ли это на самом деле?

Имея формулу, эквивалентную РАЗНДАТ() , можно понять ход вычисления. Очевидно, что в нашем случае количество полных месяцев между датами = 1, т.е. весь февраль. Для вычисления дней, функция находит количество дней в предыдущем месяце относительно конечной даты, т.е. 28 (конечная дата принадлежит марту, предыдущий месяц - февраль, а в 2015г. в феврале было 28 дней). После этого отнимает день начала и прибавляет день конечной даты =ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6) , т.е. 28-30+16=14. На наш взгляд, между датами все же 1 полный месяц и все дни марта, т.е 16 дней, а не 14! Эта ошибка проявляется, когда в предыдущем месяце относительно конечной даты, дней меньше, чем дней начальной даты. Как выйти из этой ситуации?

Модифицируем формулу для расчета дней разницы без учета месяцев и лет:

=ЕСЛИ(ДЕНЬ(A18)>ДЕНЬ(B18);ЕСЛИ((ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18))<0;ДЕНЬ(B18);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18)+ДЕНЬ(B18));ДЕНЬ(B18)-ДЕНЬ(A18))

При применении новой функции необходимо учитывать, что разница в днях будет одинаковой для нескольких начальных дат (см. рисунок выше, даты 28-31.01.2015). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.

Инструмент считает количество времени между двумя заданными промежутками. Можно указать временной интервал и узнать сколько прошло часов, минут или секунд. Если указать начальную и конечную дату, то можно узнать сколько прошло лет, месяцев и дней. Для удобства отображается два результата, общее количество времени и каждое значение по отдельности.

Интервал времени онлайн

Внимание! JavaScript отключен.
Без включенной поддержки JavaScript функция Интервал времени работать не будет .
Включите в своём браузере поддержку JavaScript и обновите страницу.

  • Всего дней и часов
    • 0 лет 0 месяцев 0 дней
    • 0 часов 0 минут 0 секунд
    • Всё по отдельности
      • Всего 0 секунд
      • Всего 0 минут
      • Всего 0 часов
      • Всего 0 дней
      • Всего 0 месяцев
      • Всего 0 лет

      Помощь. Ниже представлено описание инструмента с указанием требуемого формат для ввода времени или даты, чтобы вычислить необходимый временной интервал.

      Формат ввода интервала

      В первое поле обычно вводится начальное значение временного отрезка, а во второе поле конечное значение. Если второе поле пусто, то оно автоматически принимает значение текущего времени и даты. Если в процессе вычисления интервала появляются отрицательные значения, то это означает, что начальное значение временного отрезка меньше конечного, либо при вводе даты или времени была допущена ошибка.

      Формат ввода времени

      Формат ввода времени чч:мм:сс . Символом разделителем для написания времени используется двоеточие (": "). Можно вводить часы и минуты без секунд, например: 12:35 . Полный формат ввода: 10:01:32 .

      Формат ввода даты

      Формат ввода даты ГГГГ-ММ-ДД . Символом разделителем для написания даты используется тире ("- "). Полный формат ввода даты: 2019-01-15 .

      Совмещенный формат ввода даты и времени

      Совмещенный формат даты и времени ГГГГ-ММ-ДД чч:мм:сс . Символом разделителем между датой и временем является пробел (" "). Полный формат ввода даты и времени: 2019-01-15 10:01:32 .

      Примеры ввода даты и времени

      Для просмотра примеров ввода даты и времени нажмите над полем ввода интервалов ссылку Пример 1 или Пример 2 .

      Результаты вычисления

      Результатом вычисления является временной интервал, длительность которого исчисляется временем и количеством дней. Всего отображаются два результата. Первый результат отображает общую длительность временного интервала. Второй результат отображает отдельно длительность для каждой единицы измерения времени, отдельно количество минут, количество часов и т. д.

Как выяснилось, довольно часто в быту (и не только) возникает необходимость рассчитать разницу между двумя датами. Мы обратили на это внимание и решили сделать собственный калькулятор, который поможет вам с легкостью проводить подобные вычисления всего в несколько кликов.


Несколько слов о расчете разницы между двумя датами

Оказывается, перед нами довольно часто встает вопрос - "Сколько дней между двумя датами?". Это может пригодиться для того, чтобы узнать сколько дней прошло с момента, когда человек бросил пить или курить. Все мы прекрасно знаем, что когда человек бросает курить, первое время он постоянно считает количество дней (и очень трепетно относится к получившемуся числу), прошедших с того самого счастливого момента, когда он смял и выкинул свою последнюю пачку сигарет. Эти подсчеты могут продолжаться на протяжении месяцев, поэтому считать в уме становится тяжело уже буквально на второй неделе.

Наш калькулятор для расчета разницы между двумя датами призван для того, чтобы не тратить время на сложные вычисления в уме и сделать это в несколько кликов, всего за пару секунд. В рамках данной статьи мы не будем рассказывать про огромное множество других возможных ситуаций, при которых может понадобиться подобный калькулятор. Это может быть что угодно - "сколько дней осталось до конца света?", "сколько дней осталось до летних каникул?", "сколько дней до 1-го сентября, дня рождения, свадьбы" и т.д. Вариантов просто бесчисленное множество и, как видите, данный калькулятор действительно будет очень полезен (по крайней мере мы так надеемся).

Калькулятор расчета разницы между двумя датами

Итак, давайте перейдем непосредственно к самому калькулятору и рассчитаем при помощи него разницу между двумя датами. Результат будет выведен в днях. Стоит обратить ваше внимание, что для корректной работы калькулятора необходимо полностью и правильно заполнить все данные и нажать кнопку "Рассчитать".

Для удобства, в данном примере начальная и конечная даты установлены в положение текущей даты, чтобы можно было легко определять сколько дней прошло с определенного момента до настоящего времени или сколько дней осталось до какого-нибудь важного события.

PHP функция расчета разницы

Функция, которая используется для расчета очень проста:

$days = floor((strtotime("2015-01-01") - strtotime("2010-01-01")) / 86400);

Конкретно в нашем примере мы используем 3 поля ввода для каждой даты и генерируем строку на основе полученных данных таким образом:

$days = abs(floor((strtotime($_POST["y2"]."-".$_POST["m2"]."-".$_POST["d2"]) - strtotime($_POST["y1"]."-".$_POST["m1"]."-".$_POST["d1"])) / 86400));

В дополнение мы вычисляем модуль от полученной разницы, чтобы значение не выводилось со знаком минус, в случае если пользователь перепутал начальные и конечные даты и ввел значения наоборот.

Дата и время в Excel – это числа сформатированные специальным образом. Датой является целая часть числа, а время (часы и минуты) – это дробная часть.

По умолчанию число 1 соответствует дате 01 января 1900 года. То есть каждая дата – это количество дней прошедших от 01.01.1900. На данном уроке детально рассмотрим даты, а на следующих уроках – время.

Как в Excel посчитать дни между датами?

Так как дата является числом, значит можно проводить с ним математические вычислительные и расчетные операции. Посчитать количество дней между двумя датами Excel не составляет особых проблем. Для наглядного примера сначала выполним сложение, а потом вычитание дат. Для этого:

  1. На чистом листе в ячейку А1 введите текущею дату нажав CTRL+;.
  2. В ячейке A2 введите промежуточный период в днях, например 127.
  3. В ячейку A3 введите формулу:=A1+A2.

Обратите внимание, формат «Дата» автоматически присвоился для ячейки A3. Не сложно догадаться, чтобы посчитать разницу в датах в Excel нужно от новейшей даты отнять старшую дату. В ячейке B1 введите формулу:=A3-A1. Соответственно мы получаем количество дней между этими двумя датами.



Вычисление возраста по дате рождения в Excel

Теперь мы научимся вычислять возраст по дате рождения:

  1. На новый лист в ячейки A1:A3 введите даты: 18.04.1985; 17.08.1977; 08.12.1992
  2. В ячейки B1:B3 проставьте текущею дату.
  3. Теперь нужно воспользоваться функцией по преобразованию количества дней в количество лет. Для этого вручную введите в диапазон C1:C3 следующее значение: =РАЗНДАТ(A1;B1;"y").

Таким образом, применение функции позволило нам точно вычислить возраст по дате рождения в Excel.

Внимание! Чтобы перевести дни в года не достаточно формулы: =(B1-A1)/365. Более того даже если мы знаем что 1 сутки = 0,0027397260273973 года, то формула:=(B1-A1)*0,0027397260273973 так же не даст точного результата.

Дни в года наиболее точно преобразует функция:=РАЗНДАТ(). Английская версия =DATEDIF(). Вы не найдете ее в списке мастера функций (SHIFT+F3). Но если просто введете ее в строку формул, то она сработает.

Функция РАЗНДАТ поддерживает несколько параметров:

Проиллюстрируем пример использования нескольких параметров:


Внимание! Чтобы функция:=РАЗНДАТ() работала без ошибок, следите за тем, чтобы начальная дата была старше конечной даты.

Ввод даты в ячейку Excel

Целью данного урока является пример математических операций с датами. Так же, мы убедимся, что для Excel тип данных дата является числом.

Заполните таблицу датами, так как показано на рисунке:


Разные способы ввода дат. В столбце А – способ ввода, а в столбце B – результат отображения.

Обратите внимание, что в формате ячеек по умолчанию «Общий», даты также как и число выравниваются по правой стороне, а текст по левой. Значение в ячейке B4 распознается программой как текст.

В ячейке B7 Excel сам присвоил текущий год (сейчас 2015-ый) по умолчанию. Это видно при отображении содержимого ячеек в строке формул. Обратите внимание, как изначально вводилось значение в A7.

Вычисление даты Excel

На чистом листе в ячейки А1:B1 введите 01.01.1900, а в ячейках A2:B2 вводим 01.01.1901. Теперь меняем формат ячеек на «числовой» в выделенном диапазоне B1:B2. Для этого можно нажать комбинацию клавиш CTRL+SHIFT+1.

B1 теперь содержит число 1, а B2 – 367. То есть прошел один високосный год (366 дней) и 1 день.

Способ отображения даты можно задать с помощью диалогового окна «Формат ячеек». Для его вызова нажмите: CTRL+1. На закладке «Число» выберите в списке «Числовые форматы» - «Дата». В разделе «Тип» отображаются самые популярные форматы для отображения дат.