elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Temas
Páginas: [1]
1  Programación / Java / Ayuda con un codigo Java respecto a horas/minutos/segundos y sumas con ellas en: 6 Abril 2017, 19:33 pm
Buenas a todos,soy nuevo tanto en este foro como en la programacion(apenas se cuatro cosas mal contadas).
Estoy aprendiendo Java con un libro,al final de cada capitulo te da unos cuantos ejercicios resueltos y ejercicios para que lo resolvamos y estoy teniendo problemas con uno de ellos.

El ejercicio me pide que ingrese una hora/minutos/segundo(tiene que ser correcto,es decir,no vale 30 horas o 72 min) y despues que ingrese un numero(en segundos) que se sumara a la hora dando una hora correcta(en horas/minutos/segundos).
Pero no consigo hacerlo,me da muchos problemas.

Vengo aqui para ver si alguien me puede ayudar a hacerlo(a ser posible explicandome mis errores y asi se que es lo que no debo hacer cuando tenga que volver a hacer algo parecido).

Dejo el codigo que llevo echo abajo(echo en Eclipse),y antes de nada dejar claro que solo se hacer condicionales,bucles y funciones y por el capitulo en el que me dieron el ejercicio,se deberia poder hacer solo con condicionales y bucles,pongo esto mas que nada porque todavia no tengo ni idea ni de tablas ni de clases ni de nada mas complejo que condicionales,bucles y funciones.

Muchas gracias de antemano.

Código
  1. package Capitulo3.SinTerminar;
  2. import java.util.Scanner;
  3. public class Ejercicio2 {
  4. //El programa debe pedir una hora ingresando Horas, Minutos y Segundos y depsues sumarle X segundos
  5. public static void main(String[]args){
  6. Scanner sc=new Scanner(System.in);
  7. int h,m,s,num;
  8. boolean h1=true,h2=true,m1=true,m2=true,s1=true,s2=true;
  9. do{
  10. System.out.print("Ingrese la hora(00-23): ");
  11. h=sc.nextInt();
  12. if(h<=23){h1=true;}else{h1=false;}
  13. if(h>=00){h2=true;}else{h2=false;}
  14. }while(h1!=true||h2!=true);
  15. do{
  16. System.out.print("Ingrese los minutos(00-59): ");
  17. m=sc.nextInt();
  18. if(m<=59){m1=true;}else{m1=false;}
  19. if(m>=00){m2=true;}else{m2=false;}
  20. }while(m1!=true||m2!=true);
  21. do{
  22. System.out.print("Ingrese los segundos(00-59): ");
  23. s=sc.nextInt();
  24. if(s<=59){s1=true;}else{s1=false;}
  25. if(s>=00){s2=true;}else{s2=false;}
  26. }while(s1!=true||s2!=true);
  27. System.out.println("Son las "+h+":"+m+":"+s+".");
  28. System.out.print("Ingrese el numero de segundos en los que quieres incrementar la hora:");
  29. num=sc.nextInt();
  30. int a,b,c,d,e;
  31. a=s*3600;
  32. b=m*60;
  33. c=s;
  34. d=a+b+c;
  35. e=d+num;
  36. h=(int)e/3600;
  37. m=(int)(e-(e/3600))/60;
  38. s=(int)(e-(m*60));
  39. System.out.print("La nueva hora es: "+h+":"+m+":"+s);
  40. }
  41. }[/code=java]
  42.  
  43. pd: La unica forma que tengo para asegurarme que al insertar un numero sea valido(es decir,entre 0 y 23 para horas y 0-59 para minutos y segundos) es con el codigo que hay en las lineas  9-14;15-20;21-26.
  44. Mi duda respecto a ese codigo es si hay otra forma,porque este lo veo muy,muy lioso,me saio despues de un buen rato de probar combinaciones raras.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines