Clipper/FiveWin - calcular si el año es bisiesto

 
Vista:

calcular si el año es bisiesto

Publicado por antonio (222 intervenciones) el 24/05/2008 11:55:30
HOLA A TODOS:
Yo lo calculo asi:
x=año que queremos calcular
2000-x=y
y/4=z
si el resto de la division es cero es que el año es bisiesto.
Si alguno tiene otra formula mejor se agradece.
Gracias anticipadas.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:calcular si el año es bisiesto

Publicado por Gabriel Pascual (913 intervenciones) el 24/05/2008 18:10:46
Yo lo hago asi

? IsBisiesto(2004)

FUNCTION IsBisiesto(nAnio)
RETURN IIF( nAnio % 4 == 0, .T., .F.)

En general todos lo años bisiestos son múltiplos exactos de 4, por lo que el operador "modulo" (% = residuo de la division) devuelve siempre 0, hay una excepecion que creo que es el año 1724 (no estoy seguro), que tendría que haber sido bisiesto, pero no lo fue, porque justo en ese año se hizo el ajuste de calendarios Gregorianos y Julianos, pero da igual, en Windows no se pueden hacer cálculos con fechas menores al 30 de Diciembre de 1899 (que es la fecha mínima que puede calcular el calendario del sistema operativo), por lo que la regla de la división entre 4 aplica perfectamente, por lo menos para los siglos XX y XXI.

Mas simple ni un vaso con agua.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calcular si el año es bisiesto

Publicado por Ricardo Ramirez E. (201 intervenciones) el 24/05/2008 19:07:45
Considerando el sermon de Gabriel no seria mejor asi?

If Year(dData) % 4 = 0
&& es bisiesto
else
&& no es bisiesto..
endif

pa' ahorrarse la funcion

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calcular si el año es bisiesto

Publicado por Antonio Guerrero Torrejon (1 intervención) el 25/05/2008 21:58:41
Se nota que le tienes un rato de envidia al maestro Gabriel ¿ no ?.

¿ porque siempre que Gabriel explica algo tienes que ir de listo y tratar de dar al utlima palabra ?

A mi francamente me sirve mas "el sermon", porque por lo menos he aprendido que existe el operador %, que devuelve el residudo dela division, cosa que no sabia.

Me gustan las explicaciones de Gabriel porque siempre nos explica el como y el porque de hacer las cosas, no se limita simplemente a resolver el problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calcular si el año es bisiesto

Publicado por Ricardo Ramirez E. (201 intervenciones) el 26/05/2008 10:16:05
Torrejon :
A Gabriel no lo "conozco" , a que envidia te refieres?
En relacion a los operadores, ??? como es posible que no conozcas los de los lenguajes que usas??? en fin...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calcular si el año es bisiesto

Publicado por Marcelo (161 intervenciones) el 27/05/2008 21:29:00
todos los años multiplos de 4 son bisiestos, pero el 2000 no lo fue.
creo que la mejor manera de averiguar si el año "aa" es bisiesto es:

if ctod("03/03/aa") - ctod("03/03/aa-1") =366
retu .t.
else
retu .f.
endif

obviamente funciona con cualquier fecha mayor o igual al primero de marzo.
Saludos
Marcelo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:calcular si el año es bisiesto

Publicado por Jose Flores (26 intervenciones) el 03/06/2008 18:36:29
Haber que os parece esta:

Set Date Italian
dFecha:=CtoD("29-02-aaaa")
if Empy (dfecha)
MsgInfo( "No es Bisiesto")
else
MsgIng( "Es Bisiesto" )
endif

Saludos desde Sevilla
Jose Flores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar