Иллюстрированный самоучитель по Delphi 7 для начинающих

Инструкция case

Рассмотрим фрагмент программы (листинг 2.5), которая вычисляет дату следующего дня, используя сегодняшнюю дату, представленную тремя переменными: day (день), month (месяц) и year (год).

Сначала с помощью инструкции саsе проверяется, является ли текущий день последним днем месяца. Если текущий месяц – февраль и если текущее число – 28, то дополнительно выполняется проверка, является ли год високосным. Для этого вычисляется остаток от деления года на 4. Если остаток равен нулю, то год високосный, и число 28 не является последним днем месяца.

Если выясняется, что текущий день – последний день месяца, то следующее число – первое. Затем проверяется, не является ли текущий месяц декабрем. Если нет, то увеличивается номер месяца, а если да, то увеличивается номер года, а номеру месяца присваивается значение 1.

Листинг 2.5. Вычисление даты следующего дня (фрагмент).

// вычисление даты следующего дня
var
day: integer; // день
month: integer; // месяц
year: integer; // год
last:boolean; // если день – последний день месяца,
// то last = True
r:integer; // если год не високосный, то остаток
// от деления year на 4 не равен нулю
begin
{ переменные day, month и year содержат сегодняшнюю дату }
last: = False; // пусть день – не последний день месяца
case month of 4.6.9.11:
if day = 30 then last: = True; 2:
if day = 28 then begin
r: = year mod 4; if r <> 0 then last: = True;
end;
else: if day=31 then last: = True;
end; if last then
begin // последний день месяца day: = 1;
if month =12 then
begin // последний месяц
month: = 1;
year: = year + 1;
end
else month: = month + 1;
end
else day: = day + 1;
// переменные day, month и year // содержат завтрашнюю дату
end;
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.