Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: leap year

Re: leap year

From: Vladimir Begun <vladimir.begun_at_oracle.com>
Date: Tue, 24 May 2005 21:29:53 -0700
Message-ID: <4293FF41.4060804@oracle.com>


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
Received on Wed May 25 2005 - 00:38:13 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US