Определение по дате день недели - Turbo Pascal
Формулировка задачи:
Напишите программу на языке Pascal, которая по дате определяет день недели, на который эта дата приходится. Для вычисления дня недели воспользуйтесь формулой:
(d + [1/5 (13m-1)] + y + [y / 4] + [c / 4] -2c + 777) mod 7.
Здесь d - число месяца, m - номер месяца, если начинать счет марта, как это делали в Древнем Риме (март - 1, апрель - 2, ..., февраль - 12), y - номер года в столетии, с - количество веков .
Решение задачи: «Определение по дате день недели»
textual
Листинг программы
<html>
<head>
<script type="text/javascript">
function time()
{
var a=prompt("","","");
var d=new Date(a);
var day=d.getDate();
var mounth=d.getMonth()+1;
var year=d.getFullYear();
var wday=new Array(7);
wday[0]="Воскресенье";
wday[1]="Понедельник";
wday[2]="Вторник";
wday[3]="Среда";
wday[4]="Четверг";
wday[5]="Пятница";
wday[6]="Суббота";
document.write(day + "." + mounth + "." + year);
var day_d = d.getDay();
alert (wday[day_d]);
}
</script>
</head>
<body>
<body onload="time()">
</html>
Объяснение кода листинга программы
- В функции
time()создается всплывающее окно с помощью функцииprompt(), где пользователь должен ввести дату в формате пустой строки. - Полученная строка передается в функцию
new Date(), которая преобразует эту строку в объект даты. - Из объекта даты извлекаются следующие значения: день (
d.getDate()), месяц (d.getMonth()+1) и год (d.getFullYear()). - Создается массив
wdayс 7 элементами, каждый из которых представляет собой название дня недели. - В цикле перебираются дни недели, начиная с 0 (то есть с воскресенья) и заканчивая 6 (субботой).
- Для каждого дня недели в массиве
wdayвыводится соответствующее название дня недели. - С помощью
document.write()выводится комбинация из дня, месяца и года. - С помощью
var day_d = d.getDay();извлекается номер дня недели. - С помощью
alert(wday[day_d]);выводится название дня недели.