FoxPro/Visual FoxPro - saber si existe 29,30,31de un determinado mes?????

 
Vista:

saber si existe 29,30,31de un determinado mes?????

Publicado por Reyes Flores (18 intervenciones) el 21/01/2005 03:22:50
hola a todos; tengo ya un buen con el siguiente problema, como le hago si por ejemplo, en un sistema donde los pagos se deben hacer mensualmente el miso dia de inscripcion durante X numero de meses ejemplo: si se inscriben el 29 de Diciembre por 15 meses, como le hago para que cuandole este sumando el mes gomonth(date,1) cuando sea febrero saber si es o no valido el 29 y se regrese un dia ó igual si se inscribieron el 30 de diciembre que sea todos los dias 30 y en febrero segun si el año es biciesto me programe el pago para el 29 sino para el 28 he igual para los 31 para que en los meses donde no tengan 31 dias me lo cobre en el ultimo dia del mes.

Como le podria hacer?? existe algna funcion ó Rutina que me pueda ayudar a no generar fechas invalidas,,???

de antemano les agradesco cualquier colaboracion, este problema ya me trae vuelto loco, ya mire la rutina VALIDA FECHA pero no le entiendo, esa rutina me podria servir...???

pls helpme.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

RE:saber si existe 29,30,31de un determinado mes??

Publicado por RICARDO (153 intervenciones) el 21/01/2005 12:26:42
FINANCIERAMENTE NO SE ADMITE UN DIA SUPERIOR AL 25 (28) QUE ES DIA MAS ALTO COMUN A TODOS LOS MESES O EN SU DEFECTO EL ULTIMO DIA DE CADA MES.
NO SE SI EXISTE ALGUAN RUTINA PARA LOQUE TU ESTAS PIDIENDO PERO
SI YEAR() % 4 = 0 FEBRERO TIENE 29
SI MONTH() < 8 Y MONTH() % 2 = 1 HAY 31 DIAS
SI MONTH() > 7 Y MONTH() % 2 = 0 HAY 31 DIAS

ESPERO QUE TE SIRVA

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:saber si existe 29,30,31de un determinado mes??

Publicado por Roman Suazo (2723 intervenciones) el 21/01/2005 16:13:12
Hay muchas maneras de solucionarlo una de ellas seria algo a la fuerza (poco elegante), algo asi va la explicacion: los meses tienen 31 o 30 dias, excepto febrero, entonces con MONTH() podrias saber que mes estas evaluando. Sabiendo el mes creas una fecha en el dia 30 y a ella le sumas 1, si la fecha resultante es el en 31 el mes tiene 31 un dias y 30 en caso contrario, ya en febrero solo tendrias que empezar desde 28...el caso esta facil. El codigo lo podrias poner dentro de un prg dentro
de una funcion... considera lo que te menciono Ricardo asi que preguntale a tu cliente al respecto...
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:saber si existe 29,30,31de un determinado mes??

Publicado por kioshyro (5 intervenciones) el 21/01/2005 22:55:09
Otra forma seria:

store ctod("01"+"/"+alltrim(str(month(date())))+"/"+alltrim(str(year(date())))) to FI ¶ determinar el primer dia del mes

gomonth(fi,1)-1 determina el ultimo dia de ese mes

O sea que cuando el mes que procesas es febero en este caso fi=01/02/2005
gomonth(fi,1)-1 seria igual al 28/02/2005

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:saber si existe 29,30,31de un determinado mes??

Publicado por wences (27 intervenciones) el 24/01/2005 15:48:15
La instruccion CTOD transforma caracteres a fecha por ejemplo CTOD("29/02/2005") devolvera / / , porque no es una fecha valida , si pones una fecha valida te devolvera un valor de fecha , y el sys(11,fecha) devolvera un valor distinto de cero si es una fecha valida , sino devuelve 0 ....

Las fechas ademas puedes tratarlas como si fueran numericas , es decir puedes usar directamente la suma o la resta , si fecha={28/02/2005} y ? fecha+1 , el resultado sera {01/03/2005}

Trabajar con fechas es mas simple de lo que parece

Espero te sirva
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