Calcular la hora que será un segundo después de una hora determinada

Programa C++ que pide por teclado una hora en formato horas, minutos y segundos y calcula y muestra la hora que será un segundo después.
Los valores que se introducen por teclado son la hora, minutos y segundos actuales y el programa calcula la hora que se obtiene al sumar un segundo a la hora introducida.
 
Por ejemplo: 
Si se introduce horas: 20 minutos: 19 segundos: 5 el programa mostrará: 20:19:06
Si se introduce horas: 20 minutos: 19 segundos: 59 el programa mostrará: 20:20:00
Si se introduce horas: 23 minutos: 59 segundos: 59 el programa mostrará: 00:00:00
etc.
 
Supondremos que los datos introducidos son válidos,  el valor de las horas será un valor entre 0 y 23 y el valor de los minutos y segundos serán valores entre 0 y 59.

/*
 * Programa C++
 * Lee hora, minutos y segundos y calcula la hora un segundo después
 * suponemos que los datos leídos son válidos,es decir, el valor de las horas 
 * está entre 0 y 23, el valor de los minutos y segundos es entre 0 y 59 
 */
#include <iostream>
#include <iomanip>
using namespace std;
int main(void)
{
    //declaración de variables
    int horas, minutos, segundos;
    system("cls");

    //introducir por teclado horas, minutos y segundos                                                            
    cout << "\nIntroduce hora: ";
    cin >> horas;
    cout << "\nIntroduce minutos: ";
    cin >> minutos;
    cout << "\nIntroduce segundos: ";
    cin >> segundos;

    //se suma 1 a los segundos
    segundos++;
   
    //se comprueba si después de incrementar los segundos se ha llegado a 60                                      
    if(segundos==60)
    {
       segundos=0;        //si se ha llegado a 60, los segundos serán cero
       minutos++;         //y hay que sumar 1 a los minutos
       if(minutos==60)    //si despues de incrementar los minutos llegamos a 60
       {
          minutos=0;      //los minutos son 0
          horas++;        //y se incrementa la hora
          if(horas==24)   //si después de incrementar la hora se llega a 24
          {
             horas=0;     //la hora es la 0
          }
        }
    }

    //se muestra la hora que será un segundo después
    cout << setfill('0') << setw(2) << endl;
    cout << horas << ":" << setw(2) << minutos << ":" << setw(2) << segundos << endl;
    system("pause");
}

1 comentario:

  1. #include

    // Función para adelantar la hora en un segundo
    void adelantarHora(int& horas, int& minutos, int& segundos) {
    segundos++;

    if (segundos >= 60) {
    segundos = 0;
    minutos++;

    if (minutos >= 60) {
    minutos = 0;
    horas++;

    if (horas >= 24) {
    horas = 0;
    }
    }
    }
    }

    int main() {
    int horas, minutos, segundos;

    // Solicitar la hora al usuario
    std::cout << "Ingrese la hora (0-23): ";
    std::cin >> horas;

    std::cout << "Ingrese los minutos (0-59): ";
    std::cin >> minutos;

    std::cout << "Ingrese los segundos (0-59): ";
    std::cin >> segundos;

    // Llamar a la función adelantarHora para adelantar la hora en un segundo
    adelantarHora(horas, minutos, segundos);

    // Mostrar la hora adelantada
    std::cout << "La hora adelantada en un segundo es: " << horas << ":" << minutos << ":" << segundos << std::endl;

    return 0;
    }

    ResponderEliminar