Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебная практика / ooo / calc / ooocalc_basics.odt
Скачиваний:
27
Добавлен:
11.05.2015
Размер:
661.83 Кб
Скачать
  1. Календарные функции.

Календарные функции в программах ЭТ предназначены для работы с датами. Дата в программе ЭТ формируется с использованием системного таймера как количество дней, прошедших с какого-то начала отсчета. ЭТ OOo Calc позволяет задавать начальную дату ("нулевой день"). Количество дней, прошедших от нулевого, преобразуется с помощью календаря операционной системы в структуру ДД/ММ/ГГГГ, где ДД – номер дня в месяце, ММ – номер месяца в году, ГГГГ – номер года нашей эры (например, 28/04/2003 означает 28 апреля 2003 года). В зависимости от формата ячейки, содержащей дату, представление может быть изменено (например, вместо 28/04/2003получится 28 апр.)

Календарные функции обычно находятся в категории “Дата и время”, однако в настоящем пособии функции для работы со временем (т.е. часами, минутами, секундами) не рассматриваются.

Рассмотрим основные функции для работы с датами.

Функция TODAY() не имеет аргументов и выдает значение текущей даты в стандартном формате.

Функции DAY(адрес_ячейки), MONTH(адрес_ячейки) и YEAR( адрес_ячейки) выдают, соответственно, номер дня в месяце, номер месяца в году и номер года для даты, записанной в ячейке " адрес_ячейки ".

Функции DAYS(нач.дата;кон.дата;тип), WEEKS(нач.дата;кон.дата;тип), MONTHS(нач.дата;кон.дата;тип), YEARS(нач.дата;кон.дата;тип) вычисляют соответственно количество дней, недель , месяцев или лет между двумя датами. Назначение аргумента "тип" будет понятно из приведенного ниже примера.

Функция DATE(адр1;адр2;адр3) формирует дату из трех чисел (номера года, номера месяца и номера дня), записанных соответственно в ячейках "адр1", "адр2", "адр3".

Функция WEEKDAY(адрес_ячейки;тип) выдает номер дня недели для даты, записанной в ячейке " адрес_ячейки". Обычно отсчет начинается с воскресенья ("тип" не указан или "тип"=1), как это принято в США. Если указать "тип"=2, то первым днем недели будет считаться понедельник.

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

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

Дан список лиц, для которых известны фамилии, пол и даты рождения. Определить:

    1. День недели, на который приходится день рождения каждого человека в текущем году. Если день рождения приходится на выходные дни, вывести текст "УРА!", в остальных случаях вывести текст "УВЫ...".

    2. Возраст на настоящий момент.

    3. Дату выхода на пенсию для каждого человека.

Для этой задачи воспользуемся списком из задачи про доходы и налоги. Пол установим в соответствии с фамилиями, даты рождения введем произвольно (удобно вводить дату в виде 23/11/88, а программа приведет ее в нужный вид).

Для получения решения по пункту "a" необходимо проделать некоторые промежуточные вычисления. Сначала нужно для каждого лица сформировать дату рождения в текщем году на основании дня и месяца рождения, а также номера текщего года. Тогда первая формула (в ячейке D4 на рис. 13) будет иметь вид:

=DATE(YEAR(TODAY());MONTH(C4);DAY(C4))

Соответственно, формула для окончательного результата по пункту "а" (в ячейке E4) будет иметь вид:

=IF(OR(WEEKDAY(D4;2)=6;WEEKDAY(D4;2)=7);"УРА!";"УВЫ...")

Для обработки всего списка просто копируем эти формулы вниз.

Для получения решения по пункту "b" воспользуемся функцией YEARS() и запишем формулу для возраста в следующем виде:

=YEARS(C4;TODAY();0)

Поскольку возраст определяется как количество полных лет, прошедших с даты рождения, третий аргумент функции YEARS() нужно установить в 0. Если он будет установлен в 1, будет вычисляться просто разность годов (например, 2007-1956), что даст неверный результат.

Для получения решения по пункту "c" снова нужно формировать даты, используя значения параметров возраста выхода на пенсию. Эти возрасты на момент написания пособия составляют 60 лет для мужчин и 55 для женщин, однако они могут в любой момент измениться, поэтому конкретные числа в формулу записывать не будем. Дата выхода на пенсию формируется с использованием условия проверки пола. Итак, получаем формулу:

=IF(B4="М";DATE(YEAR(C4)+$G$1;MONTH(C4);DAY(C4));DATE(YEAR(C4)+$G$2;MONTH(C4);DAY(C4)))

Результирующая таблица показана на рис. 13.

Рис. 13. Задача на календарные функции.

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

Рис. 14. Структура формулы в "Мастере функций".

Соседние файлы в папке calc