TPV/CHORA.CPP
2021-09-08 21:44:52 +02:00

62 lines
1.7 KiB
C++

#include <stdio.h>
struct V
{
int HorasMedicion[6];
};
struct C
{
struct V VProductos;
} Config = { { 8, 12, 16, 20, 24, 4 } };
char TablaHoraria[24];
void ConstruyeTablaHoraria(void);
void main(void)
{
int i;
for ( i=0; i < 20; i++ )
printf ( "\n" );
ConstruyeTablaHoraria();
printf ( "0: %02d:00 >-< %02d:00 \n", Config.VProductos.HorasMedicion[0], Config.VProductos.HorasMedicion[1] );
printf ( "1: %02d:00 >-< %02d:00 \n", Config.VProductos.HorasMedicion[1], Config.VProductos.HorasMedicion[2] );
printf ( "2: %02d:00 >-< %02d:00 \n", Config.VProductos.HorasMedicion[2], Config.VProductos.HorasMedicion[3] );
printf ( "3: %02d:00 >-< %02d:00 \n", Config.VProductos.HorasMedicion[3], Config.VProductos.HorasMedicion[4] );
printf ( "4: %02d:00 >-< %02d:00 \n", Config.VProductos.HorasMedicion[4], Config.VProductos.HorasMedicion[5] );
printf ( "5: %02d:00 >-< %02d:00 \n", Config.VProductos.HorasMedicion[5], Config.VProductos.HorasMedicion[0] );
printf ( "\n" );
for ( i = 0; i < 12; i++ )
{
printf( " %02d >-> %d %02d >-> %d \n", i, TablaHoraria[i], i+12, TablaHoraria[i+12] );
}
}
void ConstruyeTablaHoraria(void)
{
int i, j, k;
// Revisamos las 24 horas posibles: 00 - 1 - 2 - ... - 22 - 23
for ( i = 0; i < 24; i ++ )
// Por cada hora verificamos el rango donde pueda estar ( 0 - 5 )
for ( j = 0; j < 6; j ++ )
{
for ( k = ( Config.VProductos.HorasMedicion[j] % 24); k != (Config.VProductos.HorasMedicion[(j+1)%6]%24); k = (++k)%24 )
{
if ( i == k )
{
TablaHoraria[i] = j;
break;
}
}
if ( k != (Config.VProductos.HorasMedicion[(j+1)%6]%24) )
break;
}
}