|
|
create or replace function my_add_months
(
p_date_string varchar2,
p_months number
) return varchar2 is
c int := 100;
a int := p_date_string;
y int := a / c / c;
m int := a / c - y * c;
t int;
procedure p is
begin
t := substr(525454554545, m, 1);
t := t + 26 + 1 / (t + mod(y, 4) + instr(0, mod(y, c)) * mod(y, 400));
end;
begin
p;
a := mod(a, c);
a := trunc(a / t) * c + a;
m := m + p_months + y * 12 - 7;
y := m / 12;
m := m - y * 12 + 7;
p;
return y * c * c + m * c + least(a, t);
end;
Congratulation ... Code Length: 348 Bytes. Times: 00:00:21 |
|