Página 1 de 1
Testar se o Ano é Bisesto
Enviado: 15 Dez 2009 19:07
por Ricardo Sales Ribeiro
Olá
Boa Noite galera!
Estou precisando de uma rotina q me diga se um determinado ano é bisesto ou não. procurei na parte de rotinas fontes mas não encontrei.
Desde já agradeço a colaboração.
Atenciosamente.
Ricardo Sales Ribeiro
Re: Testar se o Ano é Bisesto
Enviado: 15 Dez 2009 19:46
por Vander
Olá Ricardo;
Veja se ajuda:
viewtopic.php?f=1&t=7649&p=42045&hilit=bissexto#p42045
http://pt.wikipedia.org/wiki/Ano_bissexto
Vander
Re: Testar se o Ano é Bisesto
Enviado: 15 Dez 2009 19:50
por Toledo
Veja também a rotina abaixo, que está no
site do nosso amigo Toya:
http://www.toyanet.com.br/arquivos/anobis.zip
Abraços,
Re: Testar se o Ano é Bisesto
Enviado: 16 Dez 2009 10:54
por alxsts
Olá!
Sem a intenção de menosprezar as soluções propostas nos demais tópicos, creio que a solução mais correta e elegante relacionada ao assunto do tópico é aquela que veio junto aos exemplos do próprio Clipper 5.
Trata-se da função
DateIsLeap().
Numa instalação padrão do Clipper 5, pode ser encontrada em C:\Clipper5\Source\Sample\Date.Prg.
Código: Selecionar todos
/***
*
* DateIsLeap( <dDate> ) --> lLeap
*
* Determine if the year of a supplied date is a leap year
*
*/
FUNCTION DateIsleap( dDate )
LOCAL nYear := YEAR( dDate )
RETURN (( nYear % 4 ) == 0 ) .AND. ;
((( nYear % 100 ) != 0 ) .OR. ;
(( nYear % 400 ) == 0) )
A função retorna apenas se o ano da data fornecida é bissexto ou não. Para adição e subtração de meses, claro que a Nanfor tem ótimos recursos.
Re: Testar se o Ano é Bisesto
Enviado: 17 Dez 2009 10:20
por filizola
bixexto=if(year(date())%4=0,.t.,.f.)
Re: Testar se o Ano é Bisesto
Enviado: 17 Dez 2009 13:47
por Maligno
Não. A regra não é essa. Ela serve para a maior parte dos anos, mas não para todos. A regra correta você pode ver na Wikipedia, conforme link fornecido pelo Vander. Ou então leia o código publicado pelo alxsts, que está correto. Mas se for usar o seu, como eu disse, até serve para os próximos anos.
bixexto = (year(date())%4=0) // fatorado