Re: leap year
- From: Vladimir Begun <vladimir.begun@xxxxxxxxxx>
- To: oracle-l@xxxxxxxxxxxxx, ikar@xxxxxxxxxxxxxxx
- Date: Tue, 24 May 2005 21:29:53 -0700
Please consider this and add extra logic, if necessary.
CREATE OR REPLACE FUNCTION cl (
dfrom DATE
, dto DATE
)
RETURN NUMBER
IS
ln NUMBER := 0;
BEGIN
FOR i IN (EXTRACT (YEAR FROM dfrom))..(EXTRACT (YEAR FROM dto))
LOOP
ln := ln
+ CASE
WHEN MOD(i, 4) = 0
AND NOT ((MOD(i, 100) = 0) AND (MOD(i, 400) > 0))
THEN 1
ELSE 0
END;
END LOOP;
RETURN ln;
END;
/
SQL> VAR c NUMBER
SQL> EXEC :c := cl(TO_DATE('11.27.1976', 'MM.DD.YYYY'), SYSDATE);
SQL> PRINT c
C
----------
8
--
Vladimir Begun
The statements and opinions expressed here are my
own and do not necessarily represent those of Oracle.
--
http://www.freelists.org/webpage/oracle-l
- References:
- leap year
- From: Inessa Weiner
- Re: leap year
- From: Connor McDonald
Other related posts:
- » leap year
- » RE: leap year
- » RE: leap year
- » Re: leap year
- » Re: leap year
- leap year
- From: Inessa Weiner
- Re: leap year
- From: Connor McDonald