Olá, 2009/2/16 Osvaldo Kussama <osvaldo.kuss...@gmail.com>
> 2009/2/16 Newton Teixeira do Nascimento Júnior > <newton.jun...@eletronorte.gov.br>: > > Olá comunidade, como saber se o ano é bissexto? > > > > > > Um ano tem 365,2425 dias, ou seja 365 97/400. > > Isto significa que a cada 400 anos devemos ter 97 com um dia a mais (o > tal ano bissexto). > > Portanto: > - a cada 4 anos temos um ano bissexto; > - problema: assim temos 100 anos bissextos! Solução: então a cada 100 > anos este não será bissexto; > - problema:temos 96 anos bissextos! Solução: então a cada 400 anos > este será bissexto! > > É tudo uma questão de aproximação. > > Como decorrer dos anos (vários milhares) provavelmente a duração do > ano (translação em torno do sol) irá mudar e aí teremos outro tipo de > aproximação (se nosso planeta ainda existir...). > > Osvaldo > Função para cálculo de bissexto ela retorna true(t) ou false(f) para o ano dado create or replace function bissexto(int) returns boolean as $$ begin if (((($1 % 4) = 0) AND (($1 % 100) <> 0)) OR (($1 % 400) = 0)) THEN return true; end if; return false; end; $$ language 'plpgsql'; Para utiliza-la faça: postgres=# select bissexto(2009); bissexto ---------- f (1 row) postgres=# select bissexto(2008); bissexto ---------- t (1 row) Lembre-se de instalar a PL/PGSQL De onde tirei isso ? daqui : http://archives.postgresql.org/pgsql-es-ayuda/2005-04/msg00921.php Atte, -- Marcelo Costa www.marcelocosta.net ------------------------------------------------- "Os muito poderosos e os muito estúpidos possuem uma coisa em comum. Ao invés de alterarem as suas visões para se ajustarem aos fatos do mundo, eles alteram os fatos para ajustá-los às suas visões.", Doctor Who.
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral