62 lines
1.7 KiB
C++
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;
|
|
}
|
|
}
|