Обработка и представление дат




 

Встроенный объект 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. Определение времени

<HTML>

<HEAD>

<TITLE>Определение времени</TITLE>

<script language="JavaScript">

<!-- //

function c1()

{ var d=document

var t=new Date()

var h=t.getHours()

var m=t.getMinutes()

var s=t.getseconds()

var res=""

if (h < 10)

res += "0" + h

else res += h

if (m < 10) res += ":0"+m

else res += ":"+m

if (s < 10) res += ":0"+s

else res += ":"+s

d.form1.rest.value = res

}

//-->

</script>

</HEAD>

<BODY bgcolor="#FFFFCC">

<CENTER>

<IMG src=alarmWHT.gif><br>

При нажатии кнопки <В>Время</В>, Вы узнаете, который час

<FORM name="form1">

<input type="button" value=Время onClick="c1()">

<input type="text" size=10 narae="rest"><br>

</FORM>

</BODY>

</HTML>

Можно сделать так, что через некоторый заданный период значение времени будет обновляться. Для этого можно использовать функцию 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 число попадает на пятницу?

<HTML>

<HEAD>

<TITLE>B какие месяцы года 13 число попадает на пятницу?</TITLE>

<script language="JavaScript">

<!-- //

function def13(obj)

{ var t= new Date()

var c=""

var y=Number(obj.fye.value)

for (var 1=0; i <=11; i++)

{ t.setYear(y)

t.setMonth(i)

t.setDate(13)

if ((t.getDay())==5)

с = c+ fmon(i)+ "\r\n"

}

obj.res.value = с

}

function fmon(mont)

{

var s

switch (mont)

{ case 0 s="январь"; break;

case 1 s="февраль"; break;

case 2 s="март"; break;

case 3 s="апрель"; break;

case 4 s="май"; break;

case 5 s="июнь"; break;

case 6 s="июль"; break;

case 7 s="август"; break;

case 8 s="сентябрь"; break;

case 9 s="октябрь"; break;

case 10: s="ноябрь"; break;

case 11: s="декабрь"; break;

}

return s

}

//-->

</script>

</HEAD>

<BODY bgcolor="#FFFFCC">

<H4>B какие месяцы заданного года число 13 попадает на пятницу?</h4>

<FORM name="form1">

Введите год: <input type="text" size=8 name="fye" >

<input type="button" value=Haйти onClick="def13 (form1)"><br>

<textarea Cols=30 rows=4 name=res></textarea><br>

<input type="reset" value=Отменить>

</FORM>

</BODY>

</HTML>

Задания

1. Проверьте примеры из лабораторной работы.

2. Напишите сценарий, который по заданной дате определяет номер недели в году.

3. Напишите сценарий, который по дате рождения человека определяет, под каким знаком зодиака родился человек.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-09-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: