[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");
}
}
}
No hay comentarios:
Publicar un comentario