![]() |
Saber si un año es bisiesto
Hola a todos. En la aplicación que estoy desarrollando necesito saber si un año es bisiesto o no según la fecha que se introduzca. ¿Hay alguna forma de calcularlo?
Gracias. |
Hola,
aquí tienes una manera sencilla:
Espero te sirva. Saludos |
Hola Bicho,
la función que me has pasado funciona. Aunque si la fecha no existe te da un mensaje de error y después continua bien. ¿Hay alguna forma de que no salte el mensaje de error? Gracias |
Hola,
¿has copiado el try.. except? Si no es así ponlo para capturar el error y evitar que te salga. Si lo has puesto y aún así te salta un error (te lo debe estar dando si lo ejecutas desde Delphi, ¿no?) debes desactivar los errores del debuger: Menú Tools => Debugger Options => Pestaña Language Exceptions => Desmarcar: Stop On Delphi Exceptions. Saludos |
Al desactivar la opción que has dicho ya no sale más.
Gracias por todo. |
Creo que esta función es todavía más sencilla, te la brinda la unidad de Delphi SysUtils:
Saludos!!! |
Sólo como curiosidad, los años bisiestos son todos los divisibles entre 4, excepto los que sean divisibles entre 100 y no entre 400. Algo así:
|
Además de IsLeapYear tenemos DaysInAYear
Function EsBisiesto(PwAnio: Word): Boolean; Begin Result := DaysInAYear(PwAnio) = 366 End; |
Pero DaysInAYear utiliza IsLeapYear:
// Saludos |
Otra posible manera de hace lo seria poner el primer dia de la fecha del siguiente mes y restandole 1 nos daria los dias.
|
Viene a ser lo mismo que comenté antes. DecodeDate necesitará saber si el año es bisiesto para determinar cuál es el día anterior al primero de marzo.
// Saludos |
Hola,
Cita:
Saludos |
Oye Bicho, ¿cómo crees que hace StrToDate para generar el error en caso de que le pases un año que no es bisiesto? :p
// Saludos |
Esto es lo que hay, que yo tambien se mirarlo, eh? :p
Saludos |
Ajá, y ScanDate utiliza TryEncodeDate:
:p // Saludos |
Creo que se están corriendo en círculos, solo es necesario utilizar IsLeapYear.
Para que codificar algo que ya está hecho, |
hola......
hola....
escribeme a mi correo es mas practico y pueda ayudarte en lo que necesites [email protected]:p Cita:
|
[quote=cmpimentel]hola....
escribeme a mi correo es mas practico y pueda ayudarte en lo que necesites [email protected] soy informatico sivernetico y vivo en ciudad de la habana, cuba |
Cita:
// Saludos |
Cita:
// Saludos |
| La franja horaria es GMT +2. Ahora son las 05:02:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi