На этом шаге мы рассмотрим основные элементы модуля, реализующего вычисление количества дней, месяцев и лет между двумя датами.
На практике довольно часто приходится определять количество дней, месяцев и лет между двумя датами. При классическом использовании Excel возможны два метода их определения, которые показаны на рисунке 1.
Рис.1. Примеры определения количества дней, месяцев и лет в интервале между двумя датами
Метод 1 (строки 4:6). Вычтя одну дату из другой и применив функции ГОД, МЕСЯЦ и ДЕНЬ, можно определить эти данные, но Excel анализирует дату, полученную в результате вычитания, и поэтому полученный результат не будет достоверным.
Метод 2 (строки 8:10). Он состоит в том, чтобы определить год, месяц и день отдельно в двух датах, а затем произвести операцию вычитания этих составляющих. Но при вычитании отдельно лет, месяцев и дней результат может носить отрицательный характер, а такого быть не может.
На основании второго метода попытаемся проанализировать и использовать полученные результаты. На рисунке 2 приведен пример модуля определения количества лет, месяцев и дней.
Рис.2. Модуль расчета количества лет, месяцев и дней в интервале между датами
Модуль занимает диапазон ячеек В4:D6. В ячейки В4 и В5, являющимися входом модуля, вводятся даты. Выходы модуля:
Формула в ячейке D4 работает по следующему алгоритму:
Похожий алгоритм заложен и в формулах для определения количества месяцев и дней в ячейках D5 и D6.
Формулы в ячейках С4 и С5 проводят дополнительный анализ количества календарных дней в месяце, находящемся в большей дате (ячейка В4):
Рис.3. Панель функции ОСТАТ
Если год високосный, то результат деления этого года на 4 будет равен нулю.
Для того чтобы написать прописью определенные количество месяцев, дней и лет, необходимо соединить в единое целое (рисунок 4):
Рис.4. Модули написания прописью количества лет, месяцев и дней между двумя датами
Входами модуля написания текста являются ячейки В9; С9 и D9, в которые введены ссылки на соответствующие ячейки выхода модуля определения параметров.
На следующем шаге мы рассмотрим структуру создаваемого приложения.