Clarion - funciones de fechas

   
Vista:

funciones de fechas

Publicado por MartinG (22 intervenciones) el 18/03/2010 23:32:42
que tal, tengo esta situacion, necesito sumar a una fecha un cierto numero de dias, por ejemplo a la fecha de hoy(18/03/2010) sumarle 30 dias y me de (17/04/2010), en sql lo hacia con dateadd, pero en clarion no encuentro una funcion, ¿existe alguna o como le puedo hacer?

gracias!!!
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
información
Otras secciones de LWP con contenido de Clarion
- Código fuente de Clarion
- Cursos de Clarion
información
Códigos de Clarion
- Llamar al form para insertar desde el menu

RE:funciones de fechas

Publicado por Marcelo Madelon (572 intervenciones) el 19/03/2010 00:51:53
Martin.

A la variable o campo fecha que declaras solo tenes que sumarle la cantidad de dias (podes tambíen restar)
FechaHoy = Today() ! Te toma el valor de la fecha de la maquina.
FechaVto = FechaHoy + 30 ! Listo
Por supuesto que las dos variables deben estar declaradas como campo fecha
(Date)

Clarion las guarda en Juliana y tanto la suma y la resta no es un problema.


Algunas otras

! para cargar un valor por defecto en el caso que el operador haya puesto Cero
IF LOC:FechaDesde = 0
LOC:FechaDesde = deformat ('01/01/1950',@d6) ! Fijate que use DeFormat
END


! Primer Dia del Mes
LOC:FechaDesde = DATE(MONTH(TODAY()) , 1 , YEAR(TODAY()))


! Calculo Nombre del Día y si es Sábado o Domingo sumo 2 o 1 para llegar hasta el Lunes

EXECUTE (LOC:FECHA % 7) + 1
LOC:Dia = 'Domingo'
LOC:Dia = 'Lunes'
LOC:Dia = 'Martes'
LOC:Dia = 'Miércoles'
LOC:Dia = 'Jueves'
LOC:Dia = 'Viernes'
LOC:Dia = 'Sábado'
END

! Otra forma de averiguar el nombre del dia
LOC:DiaSemana = choose((today() %7)+1,'Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado')


!!!!!!!!!!!!!!!!!!!!!!!

Fecha_1 = (Dia&'/'&Mes&'/'&Anio) ! Armo la fecha sobre un string de 10

FechaVenc = deformat (Fecha_1,@d6) ! La deformateo

Resto = (FechaVenc % 7) ! Averiguo Resto (Modulo)
! Según el valor de Resto Armo el nombre del dia
!% Modulus Division (A % B gives the remainder of A divided by B)

If Resto = 0 Then Nombredia = 'Domingo '.
If Resto = 1 Then Nombredia = 'Lunes '.
If Resto = 2 Then Nombredia = 'Martes '.
If Resto = 3 Then Nombredia = 'Miercoles'.
If Resto = 4 Then Nombredia = 'Jueves '.
If Resto = 5 Then Nombredia = 'Viernes '.
If Resto = 6 Then Nombredia = 'Sábado '.

IF Resto = 0 ! sumo hasta el Lunes
FechaVenc += 1 ! Aca es Domigo y sumo 1 para pasar el Vto al Lunes
Nombredia = 'Lunes ' ! Le cambio el nombre del dia
END
If Resto = 6 ! sumo hasta el Lunes
FechaVenc += 2 Aca es Sábado y sumo 2 para pasar el Vto al Lunes
Nombredia = 'Lunes ' ! Le cambio el nombre del dia
END

Display ()
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:funciones de fechas

Publicado por Enrique Pérez Cázares (63 intervenciones) el 19/03/2010 17:08:54
Marcelo:

Te luciste con la explicación.

Solo para ponerle la cereza a tu cátedra, vale la pena indicar que la variable de fecha pude ser definida como tipo "DATE", mismo que tu mencionas o en tpo "LONG". Este útimo caso es muy util para drivers en SQL.
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

gracias!

Publicado por MartinG (22 intervenciones) el 19/03/2010 19:03:53
gracias por tu respuesta!!!
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:funciones de fechas

Publicado por Nestor Velasco (1 intervención) el 11/03/2015 22:47:43
Buenas muy buena tu explicacion, quiero hacerte una pregunta. necesito obtenet el numero de dias entre dos fechas, se que en clarion 4.0 y superior estya la orden DAY360, pero el sistyema que estoy trabajando esta realizado en clarion 2.0 y esa orden no esta disponible y de verdad no se como hacerlo, me podrias ayudar
... 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