120 likes | 349 Views
Дата и время. Диапазон дат, которые доступны в Excel . Мы имеем возможность работать с датами от 1 января 100 года до 31 декабря 9999 года . Если указать только две цифры года, то дата воспринимается в диапазоне от 1930 до 2029 года .
E N D
Диапазон дат, которые доступны в Excel. • Мы имеем возможность работать с датами от 1 января 100 года до 31 декабря 9999 года. • Если указать только две цифры года, то дата воспринимается в диапазоне от 1930 до 2029 года. • Однако этот диапазон можно менять в настройках Windows. • При описании переменных, в которых будет храниться дата или время, используется ключевое слово Date. • DimMyDateAs Date, MyTimeAs Date • При этом в переменной описанной типом Date, может храниться как дата, так и время, а так же дата и время сразу.
В программах даты и время следует заключать в знаки номера (#). • Например, • #1 Jan 2010# #11/21/09 17:00#. • Обратите внимание, что месяц в датах может обозначаться как словом (английским), так и числом. • При обозначении месяца числом, разделителем между числом, месяцем и годом является слеш "/". • Дата в этом случае записывается в формате месяц/число/год. • При выводе даты на экран она будет отображаться в том формате, который установлен в Windows. • Так в русской версии чаще всего число/месяц/год.
При записи и отображении времени разделителем между часами, минутами и секундами является двоеточие ":". • Например, #10:07:27# • Если в одну переменную необходимо записать и время и дату сразу, то это будет записано следующим образом: • Dim Z As Date • Z=#2/3/03 12:30:08# • Такая запись означает, что в переменную z будет записано 3 февраля 2003 года, 12 часов, 30 минут, 08 секунд.
Хранение дат и времени в Excel • Переменная типа Date хранится как вещественное число как положительное, так и отрицательное. • Число 0 означает полночь 1 января 1900 года. • Целая часть числа означает, сколько дней прошло от этой даты (если число положительное, то вперед, если отрицательное, то назад). • Так число 2 будет представлять 3 января 1900 года. • Дробная часть говорит о том, какая часть суток прошла, и при отображении выражается в часах, минутах и секундах. • Например, #01/03/1900 06:00:00#будет храниться как 2.25(6 часов составляют 0.25 суток).
Исходя из сказанного, можно понять, как будут работать с датами операции сложения и вычитания (говоря даты, мы подразумеваем даты и время одновременно). • При вычитании из одной даты другой мы получаем вещественное число, которое означает, сколько суток (целых или дробных) прошло от первой даты до второй. • Например • #01/05/2003# - #01/02/2003# даст в результате 3 • #01/05/2003# - #01/02/2003 06:00:00# даст в результате 2.75 • #01/02/2003 06:00:00# - #01/05/2003# даст в результате -2.75
Если к дате прибавить (или вычесть) вещественное число, то получится дата, отстоящая на указанное число суток (целое или дробное). • Например#01/02/2003# + 3 даст в результате #01/05/2003##01/05/2003# - 2.75даст в результате #01/02/2003 06:00:00# • Сложение двух дат не имеет практического смысла, но не вызывает ошибки. • В данном случае каждая дата рассматривается как вещественное число, а их сумма интерпретируется как новая дата.
Однако для времени и сложение, и вычитание являются очень удобными инструментами. • Напримерtm = #3:05:00# - #2:06:00# • В переменной tm будет 00:59:00, • т.е. при помощи этого механизма мы легко можем посчитать, сколько времени прошло с некоторого момента до указанного или сколько будет времени через заданный интервал времени.
Поскольку VBA сам преобразует тип данных, то имеется возможность присваивать строкам даты и наоборот. Однако надо иметь в виду, что формат записи может быть различен. • Например, для русской версии Windows DimS As StringS=#01/23/2003#MsgBoxS • может вывести на экран 23/01/2003 или 23.01.2003(в зависимости от настроек Windows)
Функции для работы с датой и временем • Date возвращает текущую дату • Time возвращает текущее время • Now возвращает текущую дату и время • Timer возвращает число секунд прошедших с полуночи текущего дня. • Hour(tim), Minute(tim), Second(tim) возвращают соответственно число часов, минут, секунд от tim. Tim в данном случае должно быть типа Date или String. • Year(tim), Month(tim), Day(tim) возвращают соответственно год, месяц, число от даты tim. Tim в данном случае должно быть типа Date или String.
Функции для работы с датой и временем • WeekDay(tim) возвращает номер дня недели (1 – воскресенье, 2 – понедельник, 3 – вторник и т.д.).Tim в данном случае должно быть типа Date или String. Если использовать второй аргумент, то можно изменить начало недели, • например WeekDay(tim,2) изменяет начало недели на понедельник, т.е. номер 1 будет соответствовать понедельнику, 2 – вторнику и т.д. • WeekDayName(k) возвращает название дня недели в зависимости от величины k (1 – понедельник, 2 – вторник и т.д.). Название выводится на том языке, который установлен в настройках Windows. • MonthName(k) возвращает название месяца в зависимости от величины k (1 – январь, 2 – февраль и т.д.). Название выводится на том языке, который установлен в настройках Windows.
Задачи • Задание 1.В столбце A записаны даты. Вывести в столбце B дни недели соответствующие датам из столбца A, а в столбце C названия месяцев. • Задание 2.С клавиатуры вводится дата. Вывести на экран, сколько полных лет, месяцев и дней отделяет введенную дату от текущего момента времени. • Задание 3.Выделить с помощью мышки некоторый диапазон ячеек. Все ячейки, в которых записаны даты в текущем году, закрасить красным цветом.