FoxPro/Visual FoxPro - Fechas

   
Vista:

Fechas

Publicado por Eduardo Daniel (123 intervenciones) el 05/08/2010 19:55:54
Hola amigos del foro. Tengo que manejar una fecha, se como resolverlo pero quiero ver si alguien me da una idea mas ágil
Tengo una tabla con pólizas que tienen un día de pago, solo el nro., del 1 al 31.
Cuando muestro rangos de vencimientos, armo la fecha con ctod el dia de pago mas el mes de inicio de rango mas el año de inicio de rango
Sucede que si una fecha de pago es 31, si cae febrero o un mes de 30 días, la fecha queda en blanco.
Con varios IF, preguntando si es mes 2 o 4, etc, si es año bisiesto, lo resuelvo, pero es una cantidad grande de IF
A alguien se le ocurre algo mas práctico
Como siempre, muchas gracias a todos

Eduardo
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:Fechas

Publicado por xx (378 intervenciones) el 05/08/2010 22:18:25
Podrias crear una matriz de 12 elementos con los fines de cada mes para un año especifico es decir:

_fmes[1]=31 &&enero
_fmes[2]=28 o 29 &&que deberias calcular primero si es año bisiesto y si este no es
&&multipo de 4 y si no termina en 00 es decir 1900 o 2000 etc,
&&busca informacion sobre años bisiestos primero

* a partir de aca ya todos son fijos
_fmes[3]=31
_fmes[4]=30
..
_fmes[12]=31

y lo compruebas con un bucle si esta dentro del rango valido, sigues si no le restas a tu fecha un dia es decir: fecha-1 y vuelves a comprobar hasta que este dentro de un rango valido.

Es solo otra opción no se si es la mejor!
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:Fechas

Publicado por armando (3 intervenciones) el 06/08/2010 00:57:32
prueba lo siguiente talves te sirve

clear
_fp=DATE()
@ 10,10 Say 'Fecha: ' Get _fp
Read
_fecha=GOMONTH(_fp,1) - DAY(GOMONTH(_fp,1))
?'ultimo dia del mes ' +ALLTRIM(STR(MONTH(_fp)))+' es :'+STR(DAY(_fecha))
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