[horas, minutos, segundos]
y a partir de ahí sume un segundo a dicha hora, de tal forma que se tenga en cuenta que si el secundero llega a 60, tendría que aumentarse
en uno los minutos y poner a 0 los segundos, y lo mismo cuando los minutos llegan a 60 y las horas a 24.
Desde la función principal, se pedirá al usuario los datos de una hora completa (horas, minutos y segundos) y se llamará a dicha función para
comprobar que se ha aumentado un segundo de forma correcta.
Ejemplo:
Hora: 12
Minutos: 23
Segundos: 59
Resultado después de sumar un segundo: 12:24:00
Hora : 14
Minutos: 59
Segundos: 59
Resultado después de sumar un segundo: 15:00:00
Minutos: 23
Segundos: 59
Resultado después de sumar un segundo: 12:24:00
Hora : 14
Minutos: 59
Segundos: 59
Resultado después de sumar un segundo: 15:00:00
SOLUCIÓN EN JAVA:
package arrayhorasminutossegundos; import java.util.Date; import javax.swing.JOptionPane; public class ArrayHorasMinutosSegundos { static void sumaUnSegundo(int []hora){ hora[2]+=1; if (hora[2]==60){ hora[1]+=1; hora[2]=0; if (hora[1]==60){ hora[0]+=1; hora[1]=0; if (hora[0]==24) hora[0]=0; } } } public static void main(String[] args) { int tiempo[]=new int[3]; //Array de 3 elementos: Horas, minutos y segundos int hora,minutos,segundos; //Completo la hora con la información que introduzca el usuario try { hora=Integer.parseInt(JOptionPane.showInputDialog("Horas:")); minutos=Integer.parseInt(JOptionPane.showInputDialog("Minutos:")); segundos=Integer.parseInt(JOptionPane.showInputDialog("Segundos:")); //Además de comprobar que son números correctos, compruebo que están dentro de los //límites adecuados según se trate de horas, minutos o segundos if ((hora>=0 && hora<=23) && (minutos>=0 && minutos<=59) && (segundos>=0 && segundos<=59)){ tiempo[0]=hora; tiempo[1]=minutos; tiempo[2]=segundos; } else throw new NumberFormatException(); //Primero muestro la hora introducida por el usuario System.out.printf("%02d:%02d:%02d\n\n",tiempo[0],tiempo[1],tiempo[2]); //Si todo ha ido bien llamo a una función para que aumente un segundo la hora actual sumaUnSegundo(tiempo); //y de nuevo muestro la hora después de haber sumado un segundo System.out.print("Resultado después de sumar un segundo: "); System.out.printf("%02d:%02d:%02d\n",tiempo[0],tiempo[1],tiempo[2]); } catch (NumberFormatException e){ JOptionPane.showMessageDialog(null, "Formato incorrecto"); } } }