<p><span class="ya-q-text">Hola me pueden ayudar porfavor...<br /></span></p><p><span class="ya-q-text">Simulacion de horario de un reloj<br />Como le hago para que mi programa pida al ususario ingresar una hora Inicial (hora, minuto, segundo) y una hora Final (hora, minuto, segundo) y el programa simule un reloj y avance segundo a segundo desde la hora inicial y pare asta la hora final (en un formato de 24 hrs) <br /> ejemplo: 22:59:59 debe de cambiar a 23:00:00 ó de 23:59:59 debe de cambiar a 00:00:01</span></p><p><span class="ya-q-text">NOTA:</span></p><p>Miiren tengo este programa ya echo pero solo imprime la hora inicial dada por el ususario y la hora final dada por el ususario, pero nose como hacer que de la hora Inicial avance segundo a sedundo asta detenerse en la hora final dada por el ususario en mi programa, soy principiante... por favor ayudenme.<br /></p>import java.util.Scanner;<br /> <br />public class SimulaciondeReloj{<br /> public static void main(String[] args){<br /> Scanner scan=new Scanner(System.in);<br /> //pedir y validar fecha inicial<br /> System.out.println("Ingresa la hora inicial en formato de 24 horas hh:mm:ss ");<br /> String[] horaInicialArreglo = scan.next().split(":");<br /> int hora1=Integer.parseInt(horaInicialArreglo[0]);<br /> int mins1=Integer.parseInt(horaInicialArreglo[1]);<br /> int segs1=Integer.parseInt(horaInicialArreglo[2]);<br /> if(!validarHora(hora1,mins1,segs1)){<br /> System.out.println("¡La fecha inicial no es válida!");<br /> System.exit(1);<br /> }<br /> <br /> //pedir y validar fecha final<br /> System.out.println("Ingresa la hora inicial en formato de 24 horas hh:mm:ss ");<br /> String[] horaFinalArreglo = scan.next().split(":");<br /> int hora2=Integer.parseInt(horaFinalArreglo[0]);<br /> int mins2=Integer.parseInt(horaFinalArreglo[1]);<br /> int segs2=Integer.parseInt(horaFinalArreglo[2]);<br /> if(!validarHora(hora2,mins2,segs2)){<br /> System.out.println("¡La fecha final no es válida!");<br /> System.exit(1);<br /> }<br /> <br /> //validar que la fecha inicial debe ser menor a la final<br /> if(hora1>=hora2)<br /> if(mins1>=mins2)<br /> if(segs1>=segs2){<br /> System.out.println("Error: ¡La hora FINAL debe ser MAYOR a la inicial!");<br /> System.exit(0);<br /> }<br /> System.out.println("Las horas son correctas. :)");<br /> }<br /> <br /> private static boolean validarHora(int hora,int min,int seg){<br /> if((hora>=0 && hora<=23) && (min>=0 && min<=59) && (seg>=0 && seg<=59))<br /> return true;<br /> else<br /> return false;<br /> }<br />}
<p>Se me ocurre un Hilo que se lanze cuando el usuario presione iniciar, y que aumente las variables: hora, minuto, segundo, Y estas, las actualizas en un label o lo que sea. Obvio no estabas esperando que alguien te dé el codigo verdad?</p>
<p>Hola</p><p>mira tengo este programa ya echo pero solo imprime la hora inicial dada por el ususario y la hora final dada por el ususario, pero nose como ponerle ese hilo que dices tu a mi programa, soy principiante...</p><p>import java.util.Scanner;<br /> <br />public class SimulaciondeReloj{<br /> public static void main(String[] args){<br /> Scanner scan=new Scanner(System.in);<br /> //pedir y validar fecha inicial<br /> System.out.println("Ingresa la hora inicial en formato de 24 horas hh:mm:ss ");<br /> String[] horaInicialArreglo = scan.next().split(":");<br /> int hora1=Integer.parseInt(horaInicialArreglo[0]);<br /> int mins1=Integer.parseInt(horaInicialArreglo[1]);<br /> int segs1=Integer.parseInt(horaInicialArreglo[2]);<br /> if(!validarHora(hora1,mins1,segs1)){<br /> System.out.println("¡La fecha inicial no es válida!");<br /> System.exit(1);<br /> }<br /> <br /> //pedir y validar fecha final<br /> System.out.println("Ingresa la hora inicial en formato de 24 horas hh:mm:ss ");<br /> String[] horaFinalArreglo = scan.next().split(":");<br /> int hora2=Integer.parseInt(horaFinalArreglo[0]);<br /> int mins2=Integer.parseInt(horaFinalArreglo[1]);<br /> int segs2=Integer.parseInt(horaFinalArreglo[2]);<br /> if(!validarHora(hora2,mins2,segs2)){<br /> System.out.println("¡La fecha final no es válida!");<br /> System.exit(1);<br /> }<br /> <br /> //validar que la fecha inicial debe ser menor a la final<br /> if(hora1>=hora2)<br /> if(mins1>=mins2)<br /> if(segs1>=segs2){<br /> System.out.println("Error: ¡La hora FINAL debe ser MAYOR a la inicial!");<br /> System.exit(0);<br /> }<br /> System.out.println("Las horas son correctas. :)");<br /> }<br /> <br /> private static boolean validarHora(int hora,int min,int seg){<br /> if((hora>=0 && hora<=23) && (min>=0 && min<=59) && (seg>=0 && seg<=59))<br /> return true;<br /> else<br /> return false;<br /> }<br />}<br /></p>