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

Responder a