14 дней до даты. Посчитать дни, месяца и годы между двумя датами онлайн

Для выполнения определенных задач в Excel нужно определять, сколько дней прошло между некоторыми датами. К счастью, у программы имеются инструменты, которые способны решить данный вопрос. Давайте выясним, какими способами можно посчитать разность дат в Экселе.

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


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

Способ 1: простое вычисление

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


Способ 2: функция РАЗНДАТ

Для вычисления разности в датах можно также применять специальную функцию РАЗНДАТ . Проблема в том, что в списке Мастера функций её нет, поэтому придется вводить формулу вручную. Её синтаксис выглядит следующим образом:

РАЗНДАТ(начальная_дата;конечная_дата;единица)

«Единица» — это формат, в котором в выделенную ячейку будет выводиться результат. От того, какой символ будет подставлен в данный параметр, зависит, в каких единицах будет возвращаться итог:

  • «y» — полные года;
  • «m» — полные месяцы;
  • «d» — дни;
  • «YM» — разница в месяцах;
  • «MD» — разница в днях (месяцы и годы не учитываются);
  • «YD» — разница в днях (годы не учитываются).

Также нужно обратить внимание, что, в отличие от способа с применением простой формулы, описанного выше, при использовании этой функции на первом месте должна находиться начальная дата, а конечная – на втором. Иначе расчеты будут некорректными.


Способ 3: вычисление количеств рабочих дней

В Экселе также имеется возможность произвести вычисление рабочих дней между двумя датами, то есть, исключая выходные и праздничные. Для этого используется функция ЧИСТРАБНИ . В отличие от предыдущего оператора, она присутствует в списке Мастера функций. Синтаксис у этой функции следующий:

ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])

В этой функции основные аргументы, такие же, как и у оператора РАЗНДАТ – начальная и конечная дата. Кроме того, имеется необязательный аргумент «Праздники» .

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


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

Как видим, программа Excel предоставляет своим пользователем довольно удобный инструментарий для расчета количества дней между двумя датами. При этом, если нужно рассчитать просто разницу в днях, то более оптимальным вариантом будет применение простой формулы вычитания, а не использование функции РАЗНДАТ . А вот если требуется, например, подсчитать количество рабочих дней, то тут на помощь придет функция ЧИСТРАБДНИ . То есть, как всегда, пользователю следует определиться с инструментом выполнения после того, как он поставил конкретную задачу.

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

Разность в днях

В этом примере начальная дата находится в ячейке D9, а конечная - в ячейке E9. Формула помещена в ячейку F9. Параметр "d" возвращает количество полных дней между двумя датами.

Разность в неделях


В этом примере начальная дата находится в ячейке D13, а конечная - в ячейке E13. Параметр "d" возвращает количество дней. Но в конце формулы указано выражение /7 . Это выражение делит количество дней на 7, поскольку в неделе 7 дней. Учтите, что этот результат также должен иметь числовой формат. Нажмите клавиши CTRL+1. Затем выберите Числовой > Число десятичных знаков: 2 .

Разность в месяцах


В этом примере начальная дата находится в ячейке D5, а конечная - в ячейке E5. Параметр "m" в формуле возвращает количество полных месяцев между двумя датами.

Разность в годах


В этом примере начальная дата находится в ячейке D2, а конечная - в ячейке E2. Параметр "y" возвращает количество полных лет между двумя датами.

Вычисление возраста в годах, месяцах и днях

Можно также вычислить возраст или срок службы. Результат при этом будет иметь следующий вид: "2 года, 4 месяца, 5 дней".

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


В этом примере начальная дата находится в ячейке D17, а конечная - в ячейке E17. Параметр "y" в формуле возвращает количество полных лет между двумя датами.

2. Используйте функцию РАЗНДАТ с параметром "ym" для вычисления количества месяцев.


В еще одну ячейку поместите формулу РАЗНДАТ с параметром "ym" . Параметр "ym" возвращает количество месяцев, остающихся после последнего полного года.

3. Используйте другую формулу, чтобы найти дни.


Теперь нужно определить количество оставшихся дней. Мы сделаем это, написав другую формулу, чем приведенная выше. Эта формула вычитает первый день конечного месяца (01.05.2016) из исходной даты окончания в ячейке E17 (06.05.2016). Ниже описано, как это делается. Сначала, функция ДАТА создает дату, 01.05.2016. Она делает это на основе года и месяца в ячейке E17 (число 1 означает первый день месяца). Функция ДАТА отображает 01.05.2016. Затем мы вычитаем эту дату из исходной конечной даты в ячейке E17, т. е. 06.05.2016. "06.05.2016" минус "01.05.2016" равняется 5 дням.

4. Необязательно: объедините три формулы в одну.


Все три вычисления можно поместить в одну ячейку, как в этом примере. Можно использовать амперсанды, кавычки и текст. Такую формулу дольше вводить, но зато здесь все вычисления в одном месте. Совет. Чтобы добавить в формулу разрыв строки, нажмите клавиши ALT+ВВОД. Это упростит чтение. Если не видно всю формулу целиком, нажмите клавиши CTRL+SHIFT+U.

Скачивание образцов

Вы можете скачать пример книги со всеми примерах в этой статье. Следить за ходом обсуждения или создать собственные формулы.

Другие вычисления даты и времени

Разность между сегодняшней и другой датой

Как было показано выше, функция РАЗНДАТ вычисляет разность между начальной и конечной датами. Но вместо ввода конкретной даты можно использовать в формуле функцию СЕГОДНЯ() . При этом Excel в качестве даты берет текущую дату компьютера. Помните, что она изменится, когда файл будет снова открыт в другой день.


Вычисление количества рабочих дней с учетом или без учета праздников

Вычислить количество рабочих дней между двумя датами можно с помощью функции ЧИСТРАБДНИ.МЕЖД. При этом можно также исключить выходные и праздничные дни.

Перед началом. Решите, нужно ли исключить праздничные даты. Если да, введите список праздничных дней в отдельной области или на отдельном листе. Поместите каждую праздничную дату в отдельную ячейку. Затем выделите эти ячейки, выберите Формулы > Присвоить имя . Присвойте диапазону имя МоиПраздники и нажмите кнопку ОК . Затем создайте формулу, выполнив указанные ниже действия.

1. Введите начальную и конечную даты.


В этом примере начальная дата находится в ячейке D53, а конечная - в ячейке E53.

2. Еще в одной ячейке введите формулу такого вида:


Введите формулу, как в приведенном выше примере. Параметр "1" в формуле назначает субботы и воскресенья выходными днями и исключает их из общей суммы.

Примечание. В Excel 2007 нет функции ЧИСТРАБДНИ.МЕЖД. Но есть функция ЧИСТРАБДНИ. Функция из примера выше в Excel 2007 имела бы такой вид: =ЧИСТРАБДНИ(D53;E53) . Не нужно указывать 1, потому что функция ЧИСТРАБДНИ по умолчанию считает субботу и воскресенье выходными днями.

3. При необходимости измените параметр "1".


Если у вас выходные дни не в субботу и воскресенье, укажите вместо "1" другое число из списка IntelliSense. Например, "2" назначает выходными днями воскресенья и понедельники.

Если у вас Excel 2007, пропустите это действие. Функция ЧИСТРАБДНИ в Excel 2007 всегда считает выходными днями субботу и воскресенье.

4. Введите имя диапазона праздничных дней.


Если вы присвоили имя диапазону праздничных дней в соответствии с инструкциями раздела "Перед началом", введите в конце это имя, как здесь. Если у вас нет праздничных дней, можно оставить точку с запятой и не указывать МоиПраздники. В Excel 2007 формула из примера выше примет вид: =ЧИСТРАБДНИ(D53;E53;МоиПраздники) .

Совет: Если вы не хотите ссылаться на имя диапазона праздников, также можно вводить диапазона вместо, например D35:E:39 . Или введите каждого праздника внутри формулу. Например, если была праздников 1 января и 2 2016, введите их следующим образом: = ЧИСТРАБДНИ. Intl(D53,E53,1,{"1/1/2016","1/2/2016"}) . В Excel 2007, он будет выглядеть следующим образом: =NETWORKDAYS(D53,E53,{"1/1/2016","1/2/2016"})

Вычисление затраченного времени

Чтобы вычислить затраченное время, нужно из одного значения времени вычесть другое. Поместите начальное время в одну ячейку, а конечное - в другую. Обязательно указывайте полное значение времени, включая часы и минуты. Ниже это описано более подробно.

1. Введите начальное и конечное время.


В этом примере начальное время находится в ячейке D80, а конечное - в ячейке E80. Обязательно укажите полное значение времени, включая часы и минуты.

2. Задайте формат чч:мм.


Выберите обе даты и нажмите клавиши CTRL+1 (или +1 на компьютере с Mac OS). Выберите формат (все форматы) > чч:мм , если он еще не задан.

3. Вычислите разность двух значений времени.


В еще одной ячейке вычтите значение ячейки начального времени из значения ячейки конечного времени.

4. Задайте формат чч:мм.


Нажмите клавиши CTRL+1 (или +1 на компьютере с Mac OS). Выберите (все форматы) > чч:мм .

Расчеты времени постоянно встречаются в повседневной жизни: от вычисления дней до значимой даты до подсчета времени отпуска или периода выплат по банковскому кредиту. Сборник онлайн-калькуляторов поможет вам легко оперировать таким сложным параметром как время.

Время

Управление временем – это не название магического заклинания из компьютерной игры, а вполне себе реальная способность, снискавшая огромную популярность у бизнесменов и инвесторов. Управление временем или – это техника расчета временных отрезков для эффективного выполнения определенного объема работ. Благодаря грамотному и периодов отдыха люди, использующую технику мани-менеджмента, успевают сделать намного больше тех, кто не следит за временем и страдает от .

Естественно, тайм-менеджмент – это наука не только о распределении времени. К наиболее важным навыкам, позволяющим грамотно организовать работу, относятся:

  • и управлять ресурсами;
  • расставлять приоритеты и ;
  • распределять время и анализировать результаты.

Делегирование – это перепоручение работы подчиненным или коллегам. Многие неэффективные руководители полагают, что никто не сделает лучше, чем они сами. Естественно, что заваленные кучей незначимой работы они не успевают выполнять приоритетные задачи, в результате чего и становятся неэффективными.

Поиск приоритетов – не менее важная вещь. гласит, что 80 % результата обеспечивают 20 % усилий. На практике это означает, что важно вовремя выполнять только те задачи, от которых зависит 80 % успеха. Как правило, таких задач немного, не строго 20 % как обещает принцип Парето, но обычно в диапазоне от 20 до 40 %. Именно умение отделять зерна от плевел и создают продуктивных руководителей и бизнесменов.

Наиболее известной, эффективной и в тоже время самой простой техникой считается «Помодоро». Это прием тайм-менеджмента, согласно которому работа выполняется через строго отведенные промежутки времени (обычно 20 минут), каждый из которых сопровождается пятиминутным отдыхом. Свое название техника «Помодоро» получила потому, что ее создатель отмерял промежутки времени при помощи кухонного таймера в виде помидора. С тех пор модернизированные версии тайм-менеджмента легли в основу успеха видных представителей бизнеса.

Расчет времени

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

Количество дней между двумя датами

Данный инструмент позволяет определить количество дней, укладываемых между двумя датами. К примеру, 20 октября 2017 года вам задали проект, который необходимо закончить к 18 января 2018 года. Идти к календарю и считать время не слишком удобно и проще воспользоваться калькулятором: достаточно выбрать тип программы и вбить обе даты. В ответе видим, что на выполнение плана у вас есть 2 месяца и 29 дней. Не слишком информативно при планировании. Программа выражает это время так же в днях, неделях или месяцах. Смотрим. У вас есть ровно 90 дней или 12 рабочих недель. С этим уже можно построить эффективную систему тайм-менеджмента и не допустить дедлайна.

Какая дата будет через n дней

Еще один удобный инструмент для эффективной работы. Крупный проект на работе могут поручить с пометкой «выполнить в течение 50 дней после принятия заказа». Это большое количество времени, но вновь бежать к календарю и высчитывать его не слишком удобно. Используем калькулятор. Допустим, заказ был принят в работу 28 апреля 2017 года. До какого дня его требуется сдать заказчику? Поменяем тип калькулятора и вычислим дату дедлайна. Это будет 17 июня 2017, суббота. Имея под рукой общее количество дней и дату икс, вы можете легко распределить силы для своевременного выполнения работы.

Какая дата была n дней назад

Данный калькулятор не пригодится вам в работе, но наверняка придет на помощь в личной жизни. Представьте, что вы получили смс-сообщение, в котором ваша пассия поздравляет вас с 100 днем совместной жизни. Это важная дата, которую забывать не стоит, поэтому лучше воспользоваться программой и узнать ее. Вы получили смску 4 июля 2017 года, теперь легко узнать, когда же вы съехались со своей пассией. Итак, выбираем тип калькулятора, вводим дату и юбилейные 100 дней. Ваша памятная дата – 26 марта 2017, воскресенье. Стоит обвести эту дату в календаре.

Временные величины

Данный калькулятор позволяет перевести одни временные величины в другие. При помощи программы можно выразить минуты в дни, недели в года или века в тысячелетия. На практике это может пригодиться при расчете рабочих часов для фрилансеров и свободных художников. Например, у вас есть 28 рабочих дней на выполнение очередного заказа. Это 672 часа. Отнимем время на сон 28 × 8 = 224, время на перерывы и отдых 28 × 4 = 112 и получим, что у вас есть 336 часов на эффективную работу. С этим уже можно работать и использовать техники тайм-менеджмента для продуктивного труда.

Сумма/разница во времени

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

Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию РАЗНДАТ() , английский вариант 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). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.

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


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

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

Наш калькулятор для расчета разницы между двумя датами призван для того, чтобы не тратить время на сложные вычисления в уме и сделать это в несколько кликов, всего за пару секунд. В рамках данной статьи мы не будем рассказывать про огромное множество других возможных ситуаций, при которых может понадобиться подобный калькулятор. Это может быть что угодно - "сколько дней осталось до конца света?", "сколько дней осталось до летних каникул?", "сколько дней до 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));

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



Творчество и игры