EMPEZAR DE CERO A PROGRAMAR EN LENGUAJE C
C/C++/C# HTML Java JavaScript Linux PHP Python Swift
 Recursos > Código fuente > Capítulo 13 > Ejercicio Propuesto 13.22
Tiempo transcurrido entre dos horas
 Solución
#include <stdio.h>

int main()
{
   int h1, h2, h3, m1, m2, m3, s1, s2, s3;

   printf( "\n   INTRODUZCA LA PRIMERA HORA" );
   printf( "\n   Horas: " );
   scanf( "%d", &h1 );
   printf( "   Minutos: " );
   scanf( "%d", &m1 );
   printf( "   Segundos: " );
   scanf( "%d", &s1 );

   /* Filtramos la primera hora */
   while( h1 < 0 || h1 > 23 || m1 < 0 || m1 > 59 || s1 < 0 || s1 > 59 )
   {
      printf( "   ERROR: Hora incorrecta, vuelva a introducirla." );
      printf( "\n   Horas: " );
      scanf( "%d", &h1 );
      printf( "   Minutos: " );
      scanf( "%d", &m1 );
      printf( "   Segundos: " );
      scanf( "%d", &s1 );
   }

   printf( "\n   INTRODUZCA LA SEGUNDA HORA" );
   printf( "\n   Horas: " );
   scanf( "%d", &h2 );
   printf( "   Minutos: " );
   scanf( "%d", &m2 );
   printf( "   Segundos: " );
   scanf( "%d", &s2 );

   /* Filtramos la segunda hora */
   while( h2 < 0 || h2 > 23 || m2 < 0 || m2 > 59 || s2 < 0 || s2 > 59 )
   {
      printf( "   ERROR: Hora incorrecta, vuelva a introducirla." );
      printf( "\n   Horas: " );
      scanf( "%d", &h2 );
      printf( "   Minutos: " );
      scanf( "%d", &m2 );
      printf( "   Segundos: " );
      scanf( "%d", &s2 );
   }

   if ( ( h1 > h2 ) ||
        ( h1 == h2 && m1 > m2 ) ||
        ( h1 == h2 && m1 == m2 && s1 >= s2 ) )

      printf( "\n   ERROR: Las horas son incorrectas." );
   else
   {
      s3 = ( s2 + ( m2 + h2 * 60 ) * 60 ) -
           ( s1 + ( m1 + h1 * 60 ) * 60 );

      h3 = s3 / 3600;
      s3 = s3 % 3600;
      m3 = s3 / 60;
      s3 = s3 % 60;

   printf( "\n   Han transcurrido %d horas, %d minutos y %d segundos.",
          
h3, m3, s3 );
   }

   return 0;
}
 Fichero con extensión (.c)