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

Entradas populares de este blog

13 Tipo primitivo Char.

11.- Variable constante

27.- Tipos complejos o referencia: Métodos