rendered paste body function Prev_date (item : in Date)
return Date is
Prevdate : Date;
begin
Prevdate := item;
case Item.Month is
when 1 =>
if Item.Day = 1 then
Prevdate.Year := Item.Year - 1;
Prevdate.Month := 12;
Prevdate.Day := 31;
else
Prevdate.Month := Item.Month;
Prevdate.Day := Item.Day - 1;
end if;
when 2|5|7|10|12 =>
if Item.Day = 1 then
Prevdate.Month := Item.Month -1;
Prevdate.Day := 30;
else
Prevdate.Month := Item.Month;
Prevdate.Day := Item.Day - 1;
end if;
when 3 =>
if Item.Day = 1 then
Prevdate.Month := Item.Month -1;
Prevdate.Day := 28;
else
Prevdate.Month := Item.Month;
Prevdate.Day := Item.Day - 1;
end if;
when others =>
if Item.Day = 1 then
Prevdate.Month := Item.Month -1;
Prevdate.Day := 31;
else
Prevdate.Month := Item.Month;
Prevdate.Day := Item.Day - 1;
end if;
end case;
return Prevdate;
end Prev_date;