Sumarle días a fecha correctamente.

Ingeniero Buenas Noches, antes que todo y como siempre muchas gracias por ayudarme, necesito de su valiosa intervención para el problema que tengo sobre las fechas para el siguiente código;

nDia = DAY(dFecha)
nDia2 = nDia + 4
dDato = ALLTRIM(STR(nDia))
dDato2 = ALLTRIM(STR(nDia2))
nMes = CMONTH(dFecha)
nMes1 = ALLTRIM(nMes)
nMes2 = nMes

IF nMes1 = "January" then
nMes2 = "Enero "

ELSE

IF nMes1 = "February" then
nMes2 = "Febrero "

ELSE


y así hasta llegar a diciembre con sus respectivos ENDIF

luego sumo los valores

Thisform.pageframe1.pgeContratos.txtSemana2.Value= "Semana del "+dDato+" al "+dDato2 + " de " + nMes2
thisform.refresh

para que el resultado sea "Semana del 21 al 25 de Enero" por decir un ejemplo, y hasta ahí me funciono como yo lo necesito, luego haciendo pruebas me tope con esta situación, si por ejemplo elijo la semana 28 de enero el resultado tendría que ser "Semana del 28 al 1 de Febrero" cosa que no sucede ya que el resultado que me arroja es; "Semana del 28 al 32 de Enero", :ES

me podrías ayudar por favor para resolver esta situación?

Saludos y Gracias por tu tiempo...

Respuesta
1

¿Lo único que quieres hacer es sacar una fecha con días sumados no es cierto? Entonces si quiero sacar desde hoy a 7 días las fechas lo único que hago es hoy=date() unasem Date()+7

Entonces saco

'semana del'+ alltrim(str(day(hoy)))+' de '+ CMONTH(hoy) al alltrim(str(day(unasem)))+' de '+ CMONTH(unasem)

Nada mas prueba y me avisas seria bueno hacer una función que te devuelva estos datos pasando la fecha inicial y los días que que quieres que le sume

Func fecha

Param fechaini, días

...

Retu mensaje

Hola que tal Ingeniero Buenas Noches muchas gracias por responder, no podía hacer ninguna aclaración de que resolví el problema de la siguiente manera pero así como bien lo dice si es prácticamente sumarle días a una fecha y si el intervalo esta en los últimos días del mes que no cuente numéricamente sino que determine el mes correspondiente, así fue como lo solucioné;

dFecha =thisform.text1.value && fecha devuelta por la clase lmcal (calendario)
dFecha2 =thisform.text1.value + 4 &&Fecha seleccionada + los días de la semana que deseo sumar
nDia =ALLTRIM(STR(DAY(dFecha)))&&Extrae el día de dFecha(valor del text1)
nDia2=ALLTRIM(STR(DAY(dFecha2)))&&Extrae el día de dFecha2 mas los 4 días que serian días de la semana
nMes =CMONTH(dFecha2)&&Extrae el mes de dFecha(del text1)
nMes1 =ALLTRIM(nMes)
nMes2 = nMes
nYear =ALLTRIM(STR(YEAR(dFecha2)))

IF nMes1 = "January" then
nMes2 = "Enero "
ELSE
IF
nMes1 = "February" then
nMes2 = "Febrero "
ELSE
IF nMes1 = "March" then
nMes2 = "Marzo "
ELSE
IF nMes1 = "April" then
nMes2 = "Abril "
ELSE
IF nMes1 = "May" then
nMes2 = "Mayo "
ELSE
IF nMes1 = "June" then
nMes2 = "Junio "
ELSE
IF nMes1 = "July" then
nMes2 = "Julio "
ELSE
IF nMes1 = "August" then
nMes2 = "Agosto "
ELSE
IF nMes1 = "September" then
nMes2 = "Septiembre "
ELSE
IF nMes1 = "October" then
nMes2 = "Octubre "
ELSE
IF nMes1 = "November" then
nMes2 = "Noviembre "
ELSE
IF nMes1 = "December" then
nMes2 = "Diciembre "
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF adf
ENDIF
Thisform.text2.value = "Semana del "+nDia+" al "+nDia2+" de "+nMes2+"del " + nYear
thisform.refresh

lo hacia mal fue que estaba extrayendo directamente el día numérico y sumándole mas números dándome el resultado de la suma y no directamente a la fecha, con esto resuelvo el hecho que si la fecha es 29 de enero y le sumo los días para que sean una semana lo hace y el resultado devuelto es "semana del 29 al 02 de Febrero del 2013" le añadí el año pensando en futuro para las referencias de las consultas.

Muy agradecido por el interés que tuviste ingeniero en mi duda. espero poder seguir contando con tu incondicional apoyo.

saludos desde Mexico.

Excelente Finaliza tu pregunta un gusto ayudarte por lo menos con ideas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas