Minutos entre dos tiempos


([N1] antoniaorenes) #1

Buenas tardes… Tendo dos horas y dos fechas… es decir un espacio de tiempo definido por horas y minutos con sus fechas correspondientes… Hasta aqui todo bien… La duda que me tiene bloqueado es que, necesito crear un bucle que pase por todos los minutos existentes entre estos dos tiempos, y poder contar estos minutos… no se si me explico, y en función de la hora del día y fecha, de cada uno de esos minutos, poder saber cuales de estos minutos son nocturnos, diurnos, y cuales entan dentro de festivos o días de trabajo.

Un ejemplo concreto… creamos un turno de trabajo entre una hora de inicio y otra final… de las 20:30 de un viernes a las 05:00 de un sabado… ¿como se el tiempo diurno, el nocturno, el laborable y el de fin de semana? ¿cuantos minutos hay de cada tipo?.. evidentemente tengo una tabla donde defino, tipos de horas y dias…

Gracias, un saludo.


([N3] pacosatu) #2

Hola antoniaorenes.

Te propongo lo siguiente.
Creas una tabla TIPOHORAS con todo el horario anual, puedes especificar un registro por cada 1/2 hora por ejemplo, es decir 365 X 24 X 2 = 17520 registros. Indexas por la columna FechaHora para poder hacer búsquedas. Cada registro tiene columnas indicando si esa 1/2 hora es dia, noche, fiesta, laboral, …

Cuando tienes el turno de trabajo ajustas los límites a las 1/2 horas más cercanas y realizas la búsqueda entre límites en TIPOHORAS de la FechaHora inicial y final de dicho turno.

Con la lista de registros obtenida de TIPOHORAS ya puedes recorrerla y sumar 30 minutos por cada registro y totalizar las fiestas, minutos diurnos, nocturnos, …

En 3º plano todo esto es muy rápido.

A ver que te parece.
Saludos
Paco Satué


([N3] blavan) #3

Hola, tambien si creas una tabla de festivos del año en curso
Es fácil, haces una rutina preguntando por el día del primer sábado del año.
A la tabla generada le das de alta los festivos nacionales y los de la comunidad.
En una columna especificas si es S=Sbado, D=Domingo y F=Festivo.
Yo lo tengo hecho desde hace años.
Ahora juega con la fecha y hora Inicial y fecha y hora final, por la fecha ya sabes si es festivo, sabado, domingo… y el tiempo es restar entre horas


([N3] blavan) #4

Te añado, leete el tutor vtime, tiene procesos para jugar con horas