Lotus Approach - calculo de antiguedad

 
Vista:

calculo de antiguedad

Publicado por daniel (3 intervenciones) el 08/04/2010 16:46:11
necesito ayuda con el cálculo de antiguedad. estoy creando una base de datos de administración de personal.
Tengo un campo en el que coloco la fecha de ingreso, y necesito que en otro campo me devuelva la antiguedad (en formato dd/mm/aa) calculada a la fecha actual.
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:calculo de antiguedad

Publicado por Manolo (140 intervenciones) el 12/04/2010 10:16:14
Hola:
Entiendo que la antigüedad es una "cantidad" de años, meses y dias.
Las fechas se pueden restar, y como resultado se obtienen: o bien dias, o meses, o años. Si restas 2 fechas y el resultado es 1 año, 2 meses y 4 dias, ¿cómo expresas eso en formato "dd/mm/aa"?.
Otra cosa es que a una fecha le sumes o restes una cantidad determinada de dias y obtengas otra fecha. Restando una fecha de otra, el resultado no puede ser una fecha.

Un saludo.

Manolo
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:calculo de antiguedad

Publicado por daniel (3 intervenciones) el 03/09/2010 15:35:47
Manolo, disculpá mi falta de conocimiento, soy neófito en la materia y a ello se debe que no haya sabido expresar lo que quería. Mi error fue usar "formato dd/mm/aa" cuando en realidad lo que quise decir fue que el valor devuelto se expresara de la siguiente forma: "15 años, 3 meses, 2 días".

En excel por ej. si yo deseo saber la antiguedad de un agente en su puesto de trabajo utilizo la formula:

=SIFECHA(G2;H2;"y")&SI(SIFECHA(G2;H2;"y")=1;" año ";" años ")&SIFECHA(G2;H2;"ym")&SI(SIFECHA(G2;H2;"ym")=1;" mes ";" meses ")&"y "&SIFECHA(G2;H2;"md")&SI(SIFECHA(G2;H2;"md")=1;" día";" días")

En ella, "F" es la fecha de ingreso, y "H" la fecha actual. El valor que devuelve esta operación equivale por ej. a 15 años, 3 meses, 2 días.

Lo que necesito saber es como lograr este resultado usando Approach. Desde ya te agradezco 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:calculo de antiguedad

Publicado por Manolo (140 intervenciones) el 06/09/2010 10:25:50
Hola:
Supongo que estarás familiarizado con el lenguaje "script" de Lotus.
Cómo no hay ninguna función en Approach que haga lo que tu quieres, tienes que hacerte una a tu medida. Esto es lo que he hecho yo, y funciona perfectamente.
Una función a la que le pasas las dos fechas, y te devuelve la diferencia entre ellas
cómo años, meses y dias (en formato "YY;MM;DD"), que descompongo despues.

'--------------Cargo las variables
DATE_A = Primera fecha (más lejana)
DATE_B = Segunda fecha (más cercana)

'======= Llamada a la función que devuelve la "diferencia"
'======= entre las fechas en formato (YY;MM;AA)

DIF_FECHAS = Diferencia_Fechas(Cstr(DATE_A),Cstr(DATE_B))

'======= Y despues de la llamada descomponemos lo que devuelve la función.
'======= Aquí lo convierto a enteros.
'======= En estas tres variables tienes la diferencia entre las fechas:

YEARS_DIF = Int(Mid(DIF_FECHAS,1,2))
MONTHS_DIF = Int(Mid(DIF_FECHAS,4,2))
DAYS_DIF = Int(Mid(DIF_FECHAS,7,2))


'Aquí está la función que obtiene AÑOS, MESES y DIAS que van entre
'DATE_A y DATE_B, o lo que es lo mismo: DATE_B - DATE_A
'---- Esta es la función que hace el cáclculo, que tendrías que "declarar" en "Globals":

Function Diferencia_Fechas(DATE_A As String,DATE_B As String)
FECHA_A = Cdat(DATE_A)
FECHA_B = Cdat(DATE_B)

'=================== Cuántos años van entre una fecha y otra
YEARS_DIF = Format(Int(Format(FECHA_B,"yyyy")) - Int(Format(FECHA_A,"yyyy")),"00")

'=================== Sumamos los años a la otra fecha
FECHA_A = FECHA_A + (YEARS_DIF * 365)

'========== Dias que van entre una fecha y otra (dentro del mismo año)
DIF = Format(FECHA_B - FECHA_A,"y")

'=========== Que corresponden a

MESES = Format(Int(DIF / 30),"00")

DIAS = Format(DIF - (MESES * 30),"00")

'=========== Devolvemos el cálculo en formato (yy;mm;dd)
Diferencia_Fechas = YEARS_DIF & ";" & MESES & ";" & DIAS
End Function

Espero que te sirva de ayuda.
Un saludo.

Manolo
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:calculo de antiguedad

Publicado por daniel (3 intervenciones) el 10/09/2010 15:50:55
ja ja ja ja. no tengo la más remota idea del lenguaje script (de lotus o cualquier otro) asi que te agradecería si podrías ser un poco más explicito en relación a como debo tipear la fórmula. un dato: una de las fechas tiene valor fijo (fecha de ingreso) la otra, es variable (toma la fecha actual del sistema).
Cordialmente.
Daniel.
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