Помощь - Поиск - Пользователи - Календарь
Полная версия: Узнать дату след. дня
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Patrick
Решите пожалуйста задачу:
Надо узнать дату след. дня. Формат даты д/м/г. К примеру я ввожу 30.04.2000 Ответ: 1.05.2000.
Я почти сделал, но надо ещё чтоб если ввели неверную дату к примеру 80.04.2000 Ответ был "Такого дня не существует" или если месяц неправильно, то "Такого месяца не существует"
Делается все при помощи оператора "case".
Я прикрепил файл с тем, что я делал.
andriano
Жуть.
Обычно это делается с помощью массива, в котором указываются длины месяцев: LenMonth : array[1..12]of integer = (31,28,31,30...
Ну и, само собой, в феврале надо проверять на високосный год.
Проверка делается при помощи того же массива.
Patrick
Цитата
Ну и, само собой, в феврале надо проверять на високосный год.

нет, этого можно не делать
кстати я уже сёдня её сделал, длиннющая получилась, так что можно тему эту закрывать smile.gif
andriano
Чего же тут длинного?
(без проверки на високосный год)
const month : array[1..12]of integer = (31,28,31,30,31,30,31,31,30,31,30,31);
var x,y,z:integer;
begin
writeln ('Napishite chislo');
readln (x);
writeln ('Napishite mesyac');
readln (y);
writeln ('Napishite year');
readln (z);
if not (y in [1..12]) then begin
writeln('Wrong Month');
halt;
end;
if (x < 1) or (x > month[y]) then begin
writeln('Wrong Data');
halt;
end;
if x = month[y] then begin
x := 0;
inc(y);
end;
inc(x);
if y = 13 then begin
y := 1;
inc(z);
end;
write (x);
write ('.',y);
writeln ('.',z);
writeln('Press Enter');
readln;
end.

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.