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;