Eric, un millón de gracias por tu colaboración. Aquí te muestro lo que logré
con la primera tarifa. Como podrás ver, es una fórmula de una línea de código y
estoy seguro que agregando algo de lógica se puede lograr lo mismo para la
segunda tarifa. Esta fórmula es la más eficiente que he podido crear hasta el
momento, pero me hace falta generalizarla más para que trabaje en el segundo
caso. Ojalá te sirva de referencia y me puedas ayudar a solucionar la otra
variante que es un poco más compleja.
* Horario de entrada y salida
tEntrada = CTOT("15:00")
tSalida = CTOT("14:00")
* Para la primera tarifa
tInicioN1 = CTOT("19:00")
tFinalN1 = CTOT("23:00")
* Horas de nocturnidad trabajadas de la primera tarifa y expresadas en formato
* de horas con su decimales, no en formato hh:mm, ya que la tarifa se paga por
* horas trabajadas
tHorasN1 = MIN(MAX(tSalida, tInicioN1), tFinalN1) - ;
MAX(MIN(tEntrada, tFinalN1), tInicioN1) + ;
IIF(tSalida>tEntrada,0,tFinalN1-tInicioN1)
? tHorasN1 / 3600
Salu2, Tomás
De: [email protected] [mailto:[email protected]] En nombre de
[email protected]
Enviado el: lunes, 1 de septiembre de 2014 4:08 pm
Para: GUFA List Member
Asunto: [GUFA] Algoritmo interesante
Tomas:
Realmente todo un tema lo tuyo!!
Es para un lindo analisis.
Te mando 2 soluciones espero que te ayuden a resolverlo...
Uno es manejarlos como varaibles para ir armando el resultado, la otra y más
postables es manejarlo como registro.
Falta ver algunso casos de excepción y demas.
Si te sirve alguno o te inspira manda unos Euros alguna causa benefica!! ;-)
Saludos, Eric!
El 2014-09-01 16:05, Tomás Corrales Lemoine escribió:
Hola, colegas.
Tengo el siguiente problema. Existen 2 tarifas para el pago de la nocturnidad
(expresadas en formato de 24 horas):
1. De 19:00 a 23:00
2. De 23:00 a 07:00
Partiendo de la premisa de que el obrero puede entrar y salir a cualquiera de
las 24 horas del día (horarios irregulares), necesito calcular cuántas horas de
nocturnidad trabajó en cada uno de los intervalos anteriores y en
correspondencia aplicar la tarifa de pago prevista. Por ejemplo:
Entrada
Salida
19:00 – 23:00
23:00 – 07:00
08:00
16:30
0:00
0:00
17:00
21:00
2:00
0:00
19:00
01:00
4:00
2:00
15:00
14:00
4:00
8:00
Fijaos que la hora de salida puede ser menor que la hora de entrada, lo que
significa que el obrero trabajó más de 24 horas (rarísimo pero puede suceder,
son prestadores de servicios).
Para la primera tarifa (de 19:00 a 23:00) ya encontré una fórmula, la cual
considero que es la más sencilla posible, pero en aras de no contaminar
vuestras ideas no la pongo acá, esperando que me aporten nuevas y mejores
soluciones. De todas formas, si a alguien le interesa, no hay problema.
Desde ya, agradezco su ayuda desinteresada y solidaria. Salu2,
Tomás