FoxPro/Visual FoxPro - Insertar dia en una fecha

   
Vista:

Insertar dia en una fecha

Publicado por Many (332 intervenciones) el 15/04/2013 06:32:11
Saludo amigos

Quiero que me ayuden para insertar día en un text box

01/03/2013
08/03/2013
20/03/2013
28/03/2013
16/04/2013
31/04/2013

como hago para cambiar todos los días de esas fechas por un día x que podría ser:
05
08
24
etc

Gracias a todos.
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

Insertar dia en una fecha

Publicado por Fidel (558 intervenciones) el 15/04/2013 13:52:35
En realidad no entiendo mucho cuál es tu necesidad.
Si quieres reemplazar el día en una serie de variables ó controles, debes usar Date()

1
2
3
4
5
6
7
8
9
10
nwDia=5  && nuevo día
*Suponemos que hay 6 Textbox que se llaman TxFecha1, TxFecha2, etc
nq=3  && Cantidad de Text
For i=1 to nq
lcText="TxFecha"+ltrim(str(i))
obj=Thisform.&lcText
	if !empty(obj.Value)
	obj.Value = Date( Year(obj.Value), MOnth(obj.Value) ,  nwdia)
	endif
next
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

Insertar dia en una fecha

Publicado por victor perez (137 intervenciones) el 15/04/2013 16:00:12
Hola,

Tampoco entiendo que es lo que quieres hacer.. cambiar un dia especifico de una fecha por un valor...o que?..

Si es cambiar un dia para cada fecha especifcamente, la solucion de Fidel hace una rutina que satisface el deseo...

saludos
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

Insertar dia en una fecha

Publicado por Many (332 intervenciones) el 15/04/2013 23:05:56
No debí poner tantas fechas para no confundirlo.

Ejemplo:

tengo un text box tipo fecha con esta fecha

21/04/2013

Lo único que quiero es cambiar el día de esta fecha por otro y nada mas, los demás lo arreglo yo ayúdeme con esto por favor.

seria como decir day(thisform.fecha.value) = "13" (El día de la fecha es igual a 13)

Saludo
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

Insertar dia en una fecha

Publicado por Fidel (558 intervenciones) el 16/04/2013 01:04:27
Many:
day(thisform.fecha.value) = "13" ?? - Day() retorna un valor numérico.

Thisform.TextFecha.value=Date(2013,4,15) && (Year,month,day)
.
Si quiero cambiar el día manteniendo el año y el mes:
nNuevoDia=20
obj=Thisform.TextFecha
obj.Value=Date( Year(obj.Value) , Month(obj.Value) , nNuevoDia )

Si quiero aumentar 1 día:
obj=Thisform.TextFecha
obj.Value=Obj.Value+1

(o en formato largo:
Thisform.TextFecha.Value=Thisform.TextFecha.Value + 1 )

También puedes crear un método o procedure
*---------------------------------------------------------------
Procedure ChangeFecha( xoText, xnNuevoDia)
*----------------------------------------------------------------
xoText.Value=Date(Year(xoTExt),Month(xoText), xnNuevoDia)
endproc

y lo convocas con, por ejemplo: ChangeFecha( Thisform.TextFecha , 20)

Si tu pregunta es si existe alguna función nativa que haga esto, no la he visto. Para el caso de querer cambiar de mes, tienes GOMONTH().
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
Imágen de perfil de Mauricio

Insertar dia en una fecha

Publicado por Mauricio (1367 intervenciones) el 16/04/2013 02:32:37
Porque tanto cuesta darnos a entender??
- Si voy a digitar una fecha cualquiera o aceptar la del sistema pues solamente modifico el dia y resuelto el problema
- Si quiero modificar "Solo el dia de una fecha", cual es el criterio a tomar en cuenta para hacer esa modificacion?
Parece que tenemos en la mente la idea por la cual queremos hacer una modificacion, pero cuesta trasmitir la idea.........hay que hacerla lo mas sencilla posible, por favor.....
****
day(thisform.fecha.value) = "13" (El día de la fecha es igual a 13)
si esta es tu idea de hacerlo, pues alli tienes la respuesta, en el VALID del texbox:
DAY(THISFORM.fecha.value) = 13
** Cuidado si pones = "13", pues la funcion DAY es NUMERICA
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

Insertar dia en una fecha

Publicado por Many (332 intervenciones) el 16/04/2013 04:49:28
Sigo dando gracias por su seguro apoyo

Es como dice Mauricio lo que quiero solo es esto:

DAY(THISFORM.fecha.value) = 13 pero da error de sintaxis, si esto es mucho problemas entonces ayúdenme a esto:

fecha = 12/04/2013

dia = day(fecha)
mes = month(fecha)
año= year(fecha)

en este caso
dia = 12
mes = 04
año = 2013

fecha2 = /04/2013

en la fecha2 solo quiero poner el día que quiera y que no me de error. miren como se lo dejo en blanco para que lo completen.

Nota importante:
Estoy intentando hacer un programa de prestamos y quiero que la fecha de vencimiento caigan el mismo día.

si lo hago sumando 30 ô 15 días los vencimientos van a caer en días distintos y no lo quiero así.
no es asunto de bucles ni procedimientos ni funciones es solo una forma de entrar a un campo fecha o un text box y violar el día de 1 a 28 sin ningún tipo de criterio, el criterio yo lo determino sin problemas.

No quería explicar para que, evitando que se la compliquen ya que todo esto es tonterías, sigo diciendo el único problema es el día.

Saludo a todos y espero su pronta respuesta como siempre.
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

Insertar dia en una fecha

Publicado por Fidel (558 intervenciones) el 16/04/2013 16:56:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
dFeBase=DATE()       && o la fecha de un TextBox
 
nDiafijo=DAY(dFebase)
nMesBase=MONTH(dFebase)
nAnoBase=YEAR(dFEbase)
qmeses=12                 && indicar en un textbox
 
* 1) Generación
Local Array gaDias(qMeses)
feBase=Date(nAnoBase,nMesBase,nDiaFijo)
For i=1 to qMeses
	gaDias[i]=GoMOnth(feBase,i)
NEXT
 
* 2) Browser
fcr="sayfechas.txt"
nfop=FCREATE(fcr)
=FPUTS(nfop,"Usando GoMonth")
=FPUTS(nfop,"Dia Fijo="+LTRIM(STR(nDiafijo)))
=FPUTS(nfop,"Mes Base="+LTRIM(STR(nMesBase)))
=FPUTS(nfop,"Año Base="+LTRIM(STR(nAnoBase)))
=FPUTS(nfop,REPLICATE("-",40))
FOR i=1 TO ALEN(gaDias)
	=FPUTS(nfop,DTOC(gadias[i]))
NEXT
=FCLOSE(nfop)
MODIFY FILE &fcr noedit
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Insertar dia en una fecha

Publicado por victor perez (137 intervenciones) el 16/04/2013 17:34:19
Hola,

La solucion de Fidel es la correcta a tu problema Many.

Yo lo probe de otra manera pero en resumen es la misma.

Descompones la fecha a cambiar... sabiendo que los valores obtenidos para day,month,year no son tipo varchar o char....por eso debes convertirlos con la sentencia STR (LTRIM())
Una vez obtenidos los valores en tres variables diferentes entonces los unes cambiando el valor que quieres variar...
Ejemplo:

FEcha= 13/04/2013

B= str(ltrim(month(fecha)))
C= str(ltrim(year(fecha)))
A= valor de dia que quieres....ejemplo "17"

construyes la nueva fecha asi:

Fecha_nueva= CTOD( A+ "/" + B + "/" + C)

Asi tu nueva fecha sera 17/04/2013 y es tipo Fecha...

Te lo expuse de una manera mas simple...pero es igual a la programacion de Fidel.

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Insertar dia en una fecha

Publicado por many (332 intervenciones) el 16/04/2013 22:17:10
Gracias a todos

Excelente, fin de la jornada, es exactamente lo que quería

Saludo nuevamente
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