Вы находитесь на странице: 1из 7

Министерство науки и высшего образования Российской Федерации

Федеральное государственное автономное образовательное учреждение


высшего образования
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

Инженерная школа информационных технологий и робототехники


Отделение информационных технологий
Направление информатика и вычислительная техника

Лабораторная работа №3
Дата и время

Вариант 23

по дисциплине: Web - программирование

Выполнил: студент гр. 8В8Б ____________ Кунцевич В.Д.

Проверил: ____________ Небаба С.Г.

Томск 2020
Задание

Напишите функцию, чтобы получить дату окончания недели.

Листинг программы

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>repl.it</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<script>
  let special;
let year = prompt('Введите исходный год для вычисления конца недели:');
   while(isNaN(year)||(year<=999)||(year>9999)||(year[0]==0))
   {
     if(isNaN(year))
       alert('Год введён неверно. Используйте цифры.');
     if((year<=999) || (year>9999))
       alert('Год введён неверно. Используйте формат YYYY.');
else
if(year[0]==0)
alert('Первым использованным символом не может быть 0. Используйте
формат YYYY.');
     year = prompt('Введите исходный год для вычисления конца недели:');
   }
   let month = prompt('Введите исходный месяц цифрой (1-12) для вычисления
конца недели:');
   while(isNaN(month)||(month<=0)||(month>12)||month[0]==0)
   {
    if(isNaN(month))
      alert('Месяц введён неверно. Используйте цифры.');
    if((month<=0) || (month > 12))
      alert('Месяц введён неверно. Используйте числа от 1 до 12.');
else
if(month[0]==0)
alert('Первым использованным символом не может быть 0. Используйте
числа от 1 до '+special+'.');
    month = prompt('Введите исходный месяц для вычисления конца недели:');
   }

   if(year%4==0 && month == 2)


    special = 29;
   else
2
    switch(month){
      case "1":
      case "3":
      case "5":
      case "7":
      case "8":
      case "10":
      case "12":
        special = 31;
        break;
        
      case "2":
        special = 28;
        break;
        
      case "4":
      case "6":
      case "9":
      case "11":
        special = 30;
        break;
    }
let day = prompt('Введите исходный день цифрой (1-'+special+') для
вычисления конца недели:');
while(isNaN(day)||(day<=0)||(day > special)||(day[0]==0))
   {
if(isNaN(day))
alert('День введён неверно. Используйте цифры.');
if((day<=0) || (day > special))
alert('День введён неверно. Используйте числа от 1 до '+special+'.');
else
if(day[0]==0)
alert('Первым использованным символом не может быть 0. Используйте
числа от 1 до '+special+'.');
day = prompt('Введите исходный день цифрой (1-'+special+') для
вычисления конца недели:');
}

function endDate(yearS,monthS,dayS)
{
let dateS = new Date(yearS,monthS-1,dayS);
alert('Ввёденная дата пользователем: '+dateS)
let startWeekDay = dateS.getDay();
let endWeek;
switch(startWeekDay)
{
case 0:
endWeek = 0;
break;

3
case 1:
endWeek = 6;
break;

case 2:
endWeek = 5;
break;

case 3:
endWeek = 4;
break;

case 4:
endWeek = 3;
break;

case 5:
endWeek = 2;
break;

case 6:
endWeek = 1;
break;
}
let changeDate = new Date(yearS,monthS-1,Number(dayS)+Number(endWeek));
if (endWeek == 0)
alert('Ввёденная дата уже является концом недели.')
else
alert('Дата окончания недели: '+changeDate);
}

endDate(year,month,day);

</script>
</body>
</html>

Результаты работы

4
Рисунок 1 – Окно с вводом исходного года

Рисунок 2 – Окно с вводом исходного месяца

5
Рисунок 3 – Окно с вводом исходного дня

Рисунок 4 – Сообщение с датой, введённой пользователем

6
Рисунок 5 – Результат программы

Рисунок 5 – Обработчик событий неправильно введённых данных

Рисунок 6 – Обработчик событий неправильно введённых данных

Вывод

В ходе лабораторной работы были освоены некоторые возможности


работы с функциями, разобраны методы работы с датами.