Newsgroup: it.comp.software.database
Titolo: [POSTGRES] - funzioni per [PASQUA]

visti i precedenti, mi scuso in anticipo se il codice che posto è stato già 
ricavato e postato da terzi.
ho fatto due function per il calcolo della pasqua e volevo solo renderle 
pubbliche.
le funzioni sono rielaborate dalla versione ASP di GP Bizzaro.
io le ho convertite in plpgsql, sperando che a qualcuno servano.
-- pasqua(integer) ritorna il giorno di pasqua in formato date dato l'anno.
-- is_pasqua(date) ritorna true se il giorno è pasqua, false altrimenti.
drop function pasqua(int4);
create function pasqua(int4) returns date as'
declare
        a integer;
        b integer;
        c integer;
        p integer;
        q integer;
        r integer;
        mese integer;
        giorno integer;
        anno alias for $1;
        pasqua date;
begin
        a:=anno%19;
        b:=anno/100;
        c:=anno%100;
        p:=(19*a+b-(b/4)-((b-((b+8)/25)+1)/3)+15)%30;
        q:=(32+2*((b%4)+(c/4))-p-(c%4))%7;
        r:=(p+q-7*((a+11*p+22*q)/451)+114);
        r:=(p+q-7*((a+11*p+22*q)/451)+114);
        mese:=r/31;
        giorno:=((r%31)+1);
        select into pasqua anno||''/''||mese||''/''||giorno;
        return pasqua;
end;
' language 'plpgsql';
drop function is_pasqua(date);
create function is_pasqua(date) returns boolean as'
declare
        a integer;
        b integer;
        c integer;
        p integer;
        q integer;
        r integer;
        mese integer;
        giorno integer;
        anno integer;
        day alias for $1;
        pasqua date;
begin
        anno:=substr(day,1,4);
        a:=anno%19;
        b:=anno/100;
        c:=anno%100;
        p:=(19*a+b-(b/4)-((b-((b+8)/25)+1)/3)+15)%30;
        q:=(32+2*((b%4)+(c/4))-p-(c%4))%7;
        r:=(p+q-7*((a+11*p+22*q)/451)+114);
        r:=(p+q-7*((a+11*p+22*q)/451)+114);
        mese:=r/31;
        giorno:=((r%31)+1);
        select into pasqua date(anno||''/''||mese||''/''||giorno);
        if pasqua = day then
                return true;
        else
                return false;
        end if;
end;
' language 'plpgsql';
:-)
ciao!
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/software/reliability.html

ricavato e postato da terzi.
...carino...anzi sai se da qualche parte c'è una raccolta di funzioni ?
Ciao.
Faser
-- 
FABIO SERRA
*Questo testo deve essere valutato secondo il senso della RFC-3*
Per rispondere in e-mail sostituire "invalid" con "faser"
http://www.cfmentor.com
--------------------

 ...carino...anzi sai se da qualche parte c'è una raccolta di funzioni ?
no... bisognerebbe pensare ad un posto (una specie di portale dei database 
e programming languages) dove mettere tutte ste cavolate!
solo che io non ho i mezzi.
ci fosse già l'adsl a casa mia!!!
:-)
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://www.gnu.org/gnu/why-gnu-linux.it.html

 ha scritto nel messaggio
news:cVqH8.967$8x3....@twister1.libero.it...

Beh servirebbe in effetti una specie di sito comune,
con magari diversi responsabili a seconda del database
o della tipologia (sicurezza, script).
Bah pensiamoci un po'.
                                                    danilo