var i, day: byte;
begin
write ('Введите дату (от 1 до 20) = ');
readln (i);
writeln ('Выберите день недели для введенной даты:');
writeln ('1) Понедельник ...');
writeln ('2) Вторник ...');
writeln ('... ');
writeln ('6) Суббота ...');
writeln ('7) Воскресенье ...');
readln (day);
writeln ('Воскресенье будет = ', 7-day + i );
end.
Другие языки программирования и технологии
Напишите программу для pascal, пожалуйста. Введена дата, определить дату следующего воскресенья.
W = d + [ (13m - 1) / 5 ] + y + [ y / 4 ] + [ c / 4 ] - 2c
где d - число месяца;
m - номер месяца, начиная с марта (март=1, апрель=2, ..февраль=12);
y - номер года в столетии (например, для 1965 года y=65. Для января и февраля 1965 года, т. е. для m=11 или m=12 номер года надо брать предыдущий, т. е. y=64);
c - количество столетий (например, для 2000 года c=20. И здесь для января и февраля 2000 года надо брать предыдущее столетие с=19);
квадратные скобки означают целую часть полученного числа (отбрасываем дробную) .
Результат W делите на 7 и модуль остатка от деления даст день недели (воскресенье=0, понедельник=1, ..суббота=6)
Пример: для 31 декабря 2008 года определяем:
d=31, m=10, y=8, c=20
По формуле находим:
W = 31 + [ ( 13 * 10 - 1 ) / 5 ] + 8 + [ 8 / 4 ] + [ 20 / 4 ] - 2 * 20 =
= 31 + 25 + 8 + 2 + 5 - 40 = 31
Теперь делим W на 7 и находим остаток от деления: 31 / 7 = 4 и 3 в остатке.
Тройка соответствует дню недели СРЕДА.
где d - число месяца;
m - номер месяца, начиная с марта (март=1, апрель=2, ..февраль=12);
y - номер года в столетии (например, для 1965 года y=65. Для января и февраля 1965 года, т. е. для m=11 или m=12 номер года надо брать предыдущий, т. е. y=64);
c - количество столетий (например, для 2000 года c=20. И здесь для января и февраля 2000 года надо брать предыдущее столетие с=19);
квадратные скобки означают целую часть полученного числа (отбрасываем дробную) .
Результат W делите на 7 и модуль остатка от деления даст день недели (воскресенье=0, понедельник=1, ..суббота=6)
Пример: для 31 декабря 2008 года определяем:
d=31, m=10, y=8, c=20
По формуле находим:
W = 31 + [ ( 13 * 10 - 1 ) / 5 ] + 8 + [ 8 / 4 ] + [ 20 / 4 ] - 2 * 20 =
= 31 + 25 + 8 + 2 + 5 - 40 = 31
Теперь делим W на 7 и находим остаток от деления: 31 / 7 = 4 и 3 в остатке.
Тройка соответствует дню недели СРЕДА.
получаешь день недели
рассчитываешь кол-во дней до понедельника
и прибавляешь к текущей дате
. профит .
рассчитываешь кол-во дней до понедельника
и прибавляешь к текущей дате
. профит .
Похожие вопросы
- Напишите программу на Pascal. В цистерне N литров молока.
- Люди помогите написать программы для Pascal очень срочно и очень нужно
- Помогите ламеру написать программу на Pascal.
- Помогите написать программу в PASCAL!!!
- написать программу на Pascal.
- нужно написать программу в Pascal.
- Помогите написать программу в Pascal abc net
- Помогите написать программы по Pascal ABC
- Объясните, пожалуйста, как написать программу в Pascal'e, которая определяет, находится ли координата в ромбе или нет.
- Помогите пожалуйста написать программу на pascal