17.- Practica: Calculo de la hora.
17.- Practica: Calculo de la hora.
//Un pequeño programa para introducir horas y minutos, devolviéndolas en formato hh:mm
//Y modificaciones para obtener la hora actual en formatos hh:mm y hh:mm:ss
import java.util.*;
/*Lectura por teclado de una hora:
Hora entre [0,23];
Minutos entre [0,59];
Resultado: Hora introducida: hora y minutos;
Resultado: Hora introducida: hora : minutos : segundos;*/
public class Hora{
public static int horasHoy ;
public static void main(String[] arg){
/* Scanner t = new Scanner(System.in).useLocale(Locale.US);
System.out.println("Introduzca la hora [0..23]");
int hora = t.nextInt();
System.out.println("Introduzca los minutos [0..59]");
int minutos = t.nextInt();
horaA(hora, minutos);
horaB(hora, minutos);*/
while(horasHoy <25)
horaActual();
}
public static void horaA(int hora, int minutos){
String hor = null; String min = null;
if (hora < 10 ) hor = "0"+hora; else hor = ""+hora;
if (minutos < 10 ) min = "0"+minutos; else min = ""+minutos;
System.out.print("\""+hor+":"+min+"\""+"\f");
}
public static void horaB(int hora, int minutos, int segundos){//otro tipo de conversión a hh:mm
String hor = null; String min = null; String seg = null; int n=0;
hor = "0"+hora; n=hor.length(); hor = hor.substring(n-2);
min = "0"+minutos; n=min.length(); min = min.substring(n-2);
seg = "0"+segundos; n=seg.length(); seg = seg.substring(n-2);
System.out.println("\""+hor+":"+min+":"+seg+"\""+"\f");
}
public static void horaActual(){//obtener la hora actual con el método de System.currentTimeMilis();
long t= System.currentTimeMillis()/1000;// milisegundos desde el 1 del 1 de 1970 al actual UTC
long segundosHoy = t %(24*60*60);
int horasHoy = 2+(int)(segundosHoy/(60*60));
int minutosAhora =(int)((segundosHoy/60))-(horasHoy-2)*60;//corrección por ser verano, 2 horas
int segundosAhora = (int)segundosHoy%(60);
//int segundosAhora =(int)(segundosHoy%60);
horaA(horasHoy,minutosAhora);//2 horas de diferencia horario verano
horaB(horasHoy,minutosAhora,segundosAhora);
}
}
Comentarios
Publicar un comentario