Error en ISLEAP()?, SOLUCIONADO
Error en ISLEAP()?, SOLUCIONADO
Amigos del foro:
Estoy probando la función IsLeap() para determinar si el año dado es bisiesto
? IsLeap(2024) => .T.
? IsLeap(2025) => .T.
? IsLeap(2026) => .T.
2024 sí es bisiesto pero 2025 y 2026 No.
Que estoy haciendo mal?
Saludos
Fue mi error, debemos pasar la fecha completa y yo estoy pasando solo el año
Mil disculpas
Estoy probando la función IsLeap() para determinar si el año dado es bisiesto
? IsLeap(2024) => .T.
? IsLeap(2025) => .T.
? IsLeap(2026) => .T.
2024 sí es bisiesto pero 2025 y 2026 No.
Que estoy haciendo mal?
Saludos
Fue mi error, debemos pasar la fecha completa y yo estoy pasando solo el año
Mil disculpas
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
-
- Posts: 11
- Joined: Thu Mar 17, 2022 6:47 pm
Re: Error en ISLEAP()?, SOLUCIONADO
IsLeap()
Checks if a Date value belongs to a leap year.
Syntax
IsLeap( [<dDate>] ) --> lIsLeapYear
Arguments
<dDate>
Any Date value, except for an empty date, can be passed. The default is the return value of Date(). Return
The function returns .F. (true), when <dDate> falls into a leap year, otherwise .F. (false) is returned.
Checks if a Date value belongs to a leap year.
Syntax
IsLeap( [<dDate>] ) --> lIsLeapYear
Arguments
<dDate>
Any Date value, except for an empty date, can be passed. The default is the return value of Date(). Return
The function returns .F. (true), when <dDate> falls into a leap year, otherwise .F. (false) is returned.
Re: Error en ISLEAP()?, SOLUCIONADO
Code: Select all | Expand
#Define lYEAR_BISIESTO(nYear) ( Mod(nYear, 4) == 0 )
- Enrico Maria Giordano
- Posts: 8728
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Error en ISLEAP()?, SOLUCIONADO
It is not correct.paquitohm wrote:Code: Select all | Expand
#Define lYEAR_BISIESTO(nYear) ( Mod(nYear, 4) == 0 )
Re: Error en ISLEAP()?, SOLUCIONADO
Ok ! Sorry, my error !!!Enrico Maria Giordano wrote:It is not correct.paquitohm wrote:Code: Select all | Expand
#Define lYEAR_BISIESTO(nYear) ( Mod(nYear, 4) == 0 )
From ChatGPT:
Code: Select all | Expand
FUNCTION EsBisiesto(nAno)
// Comprueba si el año es divisible por 4
IF (nAno % 4 == 0)
// Si es divisible por 4, comprueba si también es divisible por 100
IF (nAno % 100 == 0)
// Si es divisible por 100, debe ser también divisible por 400 para ser bisiesto
IF (nAno % 400 == 0)
RETURN .T. // Es bisiesto
ELSE
RETURN .F. // No es bisiesto
ENDIF
ELSE
RETURN .T. // Es bisiesto
ENDIF
ELSE
RETURN .F. // No es bisiesto
ENDIF
RETURN .F. // Por defecto, no es bisiesto (aunque esta línea nunca se alcanzará)
- nageswaragunupudi
- Posts: 10691
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: Error en ISLEAP()?, SOLUCIONADO
Why such long code with so many lines?paquitohm wrote:Ok ! Sorry, my error !!!Enrico Maria Giordano wrote:It is not correct.paquitohm wrote:Code: Select all | Expand
#Define lYEAR_BISIESTO(nYear) ( Mod(nYear, 4) == 0 )
From ChatGPT:
Code: Select all | Expand
FUNCTION EsBisiesto(nAno) // Comprueba si el año es divisible por 4 IF (nAno % 4 == 0) // Si es divisible por 4, comprueba si también es divisible por 100 IF (nAno % 100 == 0) // Si es divisible por 100, debe ser también divisible por 400 para ser bisiesto IF (nAno % 400 == 0) RETURN .T. // Es bisiesto ELSE RETURN .F. // No es bisiesto ENDIF ELSE RETURN .T. // Es bisiesto ENDIF ELSE RETURN .F. // No es bisiesto ENDIF RETURN .F. // Por defecto, no es bisiesto (aunque esta línea nunca se alcanzará)
Code: Select all | Expand
function IsLeapYear( nYear ); return ( nYear % 4 ) == 0 .and. ( nYear % 100 ) != 0
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Error en ISLEAP()?, SOLUCIONADO
Why such long code with so many lines?Code: Select all | Expand
function IsLeapYear( nYear ); return ( nYear % 4 ) == 0 .and. ( nYear % 100 ) != 0
IMHO, It is not correct.
Last edited by paquitohm on Thu Jul 04, 2024 5:19 pm, edited 1 time in total.
- Enrico Maria Giordano
- Posts: 8728
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: Error en ISLEAP()?, SOLUCIONADO
Why not using the function ISLEAP() that Harbour and xHarbour already provide?
Re: Error en ISLEAP()?, SOLUCIONADO
Enrico Maria Giordano wrote:Why not using the function ISLEAP() that Harbour and xHarbour already provide?
Code: Select all | Expand
// C:\FHW\SAMPLES\SLEEPARM.PRG
#include "FiveWin.ch"
FUNCTION Main()
SET CENTURY ON
SET DATE BRITISH
SET EPOCH TO YEAR( DATE() ) - 30
? Date(), IsLeap()
? AddMonth( 12 ), IsLeap( AddMonth( 12 ) )
? AddMonth( -12 ), IsLeap( AddMonth( -12 ) )
RETURN NIL
// FIN / END
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Error en ISLEAP()?, SOLUCIONADO
Friends:
Amigos:
This is my IsLeap function.
Esta es mi función IsLeap
As you can see, in my function I only require the year while in Harbor's function
it requires the full date, that created confusion for me in my first post
Como pueden ver, solo requiero el año mientras que IsLeap de Harbour requiere
la fecha completa, eso me creó la confusión de mi primer post, estaba usando la función de Harbour.
With many greetings
Amigos:
This is my IsLeap function.
Esta es mi función IsLeap
Code: Select all | Expand
FUNCTION IsLeap(nAmo)
RETURN( ((nAmo % 4) == 0 .AND.;
(nAmo % 100) <> 0) .OR.;
((nAmo % 400) == 0) )
it requires the full date, that created confusion for me in my first post
Como pueden ver, solo requiero el año mientras que IsLeap de Harbour requiere
la fecha completa, eso me creó la confusión de mi primer post, estaba usando la función de Harbour.
With many greetings
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero