Лабораторная работа №10
Обработка и представление дат


Встроенный объект Data применяется для представления и обработки даты и времени. Он не имеет свойств, но обладает несколькими методами, позволяющими устанавливать и изменять дату и время. В языке JavaScript дата определяется числом миллисекунд, прошедших с 1 января 1970 года.
Объект Data создается оператором new с помощью конструктора Data. Если в конструкторе отсутствуют параметры, то значением new Data () будет текущая дата и время. Значением переменной my_data1, определенной следующим образом:

var my_data1 = new Data()

будет объект, соответствующий текущей дате и времени.
Параметром конструктора new Data может быть строка формата "месяц, день, год часы: минуты: секунды". Опишем переменную my_data2 и присвоим ей начальное значение:

var my_data2 = new DataC'Fv, 12, 1978 16:45:10")

Переменная my_data2 определяет дату 12 февраля 1978 года и время 16 часов 45 минут и 10 секунд. Значения часов, минут, секунд можно опустить, в этом случае они будут равны нулю:

var my_data3 = new Data("Feb, 12, 1978")

Параметры конструктора new Data могут определять год, месяц, число, время, минуты, секунды с помощью чисел. Дату 12 февраля 1978 года и время 16 часов 45 минут и 10 секунд можно задать так:

var my_data4 = new Data(78, 1, 12, 16, 45, 10)

Если время опустить, то описание будет следующим:

var my_data5 = new Data(78, 1, 12)

Все числовые представления даты нумеруются с нуля, кроме номера дня в месяце. Месяцы представляются числами от 0 (январь) до 11(декабрь), поэтому второй параметр при задании переменных my_data4 и my_data5 равен 1.
Методами объекта Date можно получать и устанавливать отдельно значения месяца, дня недели, часов, минут и др.
-Метод getDate возвращает число в диапазоне от 1 до 31, представляющее число месяца.
-Метод getHours возвращает час суток. Значение возвращается в 24-часовом формате от 0 (полночь) до 23.
-Метод getMinutes возвращает минуты как целое от 0 до 59.
-Метод getseconds возвращает число секунд как целое от 0 до 59.
-Метод getDay возвращает день недели как целое число от 0 (воскресенье) до 6 (суббота).
-Метод getMonth возвращает номер месяца в году как целое число в интервале между 0 (январь) и 11 (декабрь). Обратите внимание, что номер месяца не соответствует стандартному способу нумерации месяцев.
-Метод getYear выдает год объекта.

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


Пример 1. Определение текущего времени


Напишем сценарий, который определяет текущее время и выводит его в текстовое поле в формате "чч:мм:сс".
В переменной res формируется строка, которая затем будет отображена в поле rest формы с именем form1. Для того чтобы уточнить время, следует еще раз нажать кнопку Время и т. д. Полностью сценарий приведен в листинге 1.


Листинг 1. Определение времени


Можно сделать так, что через некоторый заданный период значение времени будет обновляться. Для этого можно использовать функцию setTimeout ("c1()", 3000). Функция setTimeout выполняет указанные в первом параметре действия по истечении интервала времени, задаваемого вторым параметром. В приведенном примере через три секунды будет снова осуществлен вызов функции c1.
Перечисленные ниже методы позволяют устанавливать различные значения для объекта Date.
-Метод setYear устанавливает значение года для объекта Date.
-Метод setDate устанавливает день месяца. Параметр должен быть числом в диапазоне от 1 до 31.
-Метод setMonth устанавливает значение месяца. Параметр должен быть числом в диапазоне от 0 (январь) до 11 (декабрь).
-Метод setHours устанавливает час для текущего времени, использует целое число от 0 (полночь) до 23 для установки даты по 24-часовой шкале.
-Метод setMinuts устанавливает минуты для текущего времени, использует целое число от 0 до 59.
-Метод setSeconds устанавливает секунды для текущего времени, использует целое число от 0 до 59.
-Метод setTime устанавливает значение объекта Date и возвращает количество миллисекунд, прошедших с 1 января 1970 года.


Пример 2. Пятница 13

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

t.setYear (у)
 t.setMonth (i)
 t.setDate (13)

Далее следует проверить, какой номер дня соответствует этой дате. Если номер равен пяти ((t. getoay ()) ==5), то день недели - пятница, найденный месяц следует запомнить. Для формирования ответа используется строковая переменная с, после запоминания названия месяца добавляется символ перевода строки. HTML-код со сценарием приведен в листинге 2.


Листинг 2. В какие месяцы года 13 число попадает на пятницу?

Задания

1. Проверьте примеры из лабораторной работы.
2. Напишите сценарий, который по заданной дате определяет номер недели в году.
3. Напишите сценарий, который по дате рождения человека определяет, под каким знаком зодиака родился человек.
4. В старояпонском календаре был принят 60-летний цикл, состоящий из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый, черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Например, 1984 год (год зеленой крысы) был началом очередного цикла. Напишите сценарий, который по заданной дате определяет название года по старояпонскому календарю.



возврат оглавление следующая

Хостинг от uCoz