| |
CREATE OR REPLACE FUNCTION " public " ." datepaque " (annee integer ) RETURNS date AS
$body $
DECLARE
g integer ;
i integer ;
j integer ;
c integer ;
h integer ;
l integer ;
jourpaque integer ;
moispaque integer ;
dimpaque date ;
BEGIN
g:= annee % 19 ;
c:= annee / 100 ;
h:= (c- c/ 4 - (8 * c+ 13 )/ 25 + 19 * g+ 15 )% 30 ;
i:= h- (h/ 28 )* (1 - (h/ 28 )* (29 / (h+ 1 ))* ((21 - g)/ 11 ));
j:= (annee+ annee/ 4 + i+ 2 - c+ c/ 4 )% 7 ;
l:= i- j;
moispaque:= 3 + (l+ 40 )/ 44 ;
jourpaque:= l+ 28 - 31 * (moispaque/ 4 );
dimpaque:= date (annee::text | | ' - ' | | moispaque::text | | ' - ' | | jourpaque::text );
return dimpaque;
END ;
$body $
LANGUAGE ' plpgsql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." estbissextile " (integer ) RETURNS boolean AS
$body $
SELECT ($1 % 4 = 0 ) AND (($1 % 100 != 0 ) OR ($1 % 400 = 0 ));
$body $
LANGUAGE ' sql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." datedebmois " (date ) RETURNS date AS
$body $
SELECT (EXTRACT(YEAR FROM $1 ::date )| | ' - ' | | EXTRACT(MONTH FROM $1 ::date )| | ' -01 ' )::date ;
$body $
LANGUAGE ' sql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." joursdansmois " (date ) RETURNS integer AS
$body $
DECLARE
jdansm CONSTANT int2[ 12 ] = ' {31,28,31,30,31,30,31,31,30,31,30,31} ' ;
mm int2;
r int2;
BEGIN
mm:= EXTRACT(MONTH FROM $1 )::integer ;
r:= jdansm[ mm ] ;
IF (mm= 2 ) AND (EXTRACT(YEAR FROM $1 )::integer % 4 = 0 ) AND ((EXTRACT(YEAR FROM $1 )::integer % 100 != 0 ) OR (EXTRACT(YEAR FROM $1 )::integer % 400 = 0 )) THEN
r:= r+ 1 ;
END IF ;
return r;
END ;
$body $
LANGUAGE ' plpgsql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." nombrejoursannee " (date ) RETURNS integer AS
$body $
SELECT CASE WHEN (EXTRACT(YEAR FROM $1 )::integer % 4 = 0 ) AND ((EXTRACT(YEAR FROM $1 )::integer % 100 != 0 ) OR (EXTRACT(YEAR FROM $1 )::integer % 400 = 0 )) THEN 365 ELSE 366 END ;
$body $
LANGUAGE ' sql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." numerodejour " (date ) RETURNS integer AS
$body $
SELECT extract(doy from $1 ::date )::integer ;
$body $
LANGUAGE ' sql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." numerosemaine " (date ) RETURNS integer AS
$body $
SELECT EXTRACT(week FROM $1 ::date )::integer ;
$body $
LANGUAGE ' sql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." passageheureete " (date ) RETURNS boolean AS
$body $
DECLARE
m date ;
BEGIN
m:= (EXTRACT(year FROM $1 )| | ' -03-31 ' )::date ;
WHILE EXTRACT(dow FROM m)< > 0 LOOP
m:= m- ' 1 day ' ::interval;
END LOOP ;
return $1 = m;
END ;
$body $
LANGUAGE ' plpgsql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
| |
CREATE OR REPLACE FUNCTION " public " ." passageheurehiver " (date ) RETURNS boolean AS
$body $
DECLARE
m date ;
BEGIN
m:= (EXTRACT(year FROM $1 )| | ' -10-31 ' )::date ;
WHILE EXTRACT(dow FROM m)< > 0 LOOP
m:= m- ' 1 day ' ::interval;
END LOOP ;
return $1 = m;
END ;
$body $
LANGUAGE ' plpgsql ' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;
|
|
Consultez les autres pages sources
|
|
Les sources présentées sur cette page sont libres de droits
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une œuvre intellectuelle protégée par les droits d'auteur.
Copyright © 2006 Damien Griessinger Developpez LLC.
Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne
peut être faite de ce site ni de l'ensemble de son contenu : textes, documents
et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez
selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.