• Saltar a la navegación principal
  • Saltar al contenido principal

CARLOSZR.COM

Mi blog personal, CarlosZR

  • Blog
  • Contacto
  • Curso de SwiftUI por CarlosZR

Java / 14/10/2018

Cómo pasar de segundos a minutos y horas en Java

Hoy traigo una forma relativamente sencilla de pasar de segundos a minutos y horas en Java. Este método tiene en cuenta si el tramo horario se encuentra dentro del mismo día o si son días distintos. Seguramente hay una forma abreviada de hacerlo, pero así es cómo lo he hecho yo y funciona.

public class SumarHoras {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        String horaIni = "23";
        String minutoIni = "00";
        String horaFin = "08";
        String minutoFin = "30";

        /* HORARIO INICIO*/
        // Convertimos hora en double
        double horaIniDouble = Integer.parseInt(horaIni);
        // Pasamos la hora a segundos
        double segundoHoraIni = horaIniDouble * 3600;
        // Convertimos minuto a segundos
        double minutoIniDouble = Integer.parseInt(minutoIni);
        double segundoMinutoIni = minutoIniDouble * 60;
        // Sumamos los segundos
        double totalSegundoIni = segundoHoraIni + segundoMinutoIni;

        /* HORARIO FIN*/
        // Convertimos hora en double
        double horaFinDouble = Integer.parseInt(horaFin);
        // Pasamos la hora a segundos
        double segundoHoraFin = horaFinDouble * 3600;
        // Convertimos minuto a segundos
        double minutoFinDouble = Integer.parseInt(minutoFin);
        double segundoMinutoFin = minutoFinDouble * 60;
        // Sumamos los segundos
        double totalSegundoFin = segundoHoraFin + segundoMinutoFin;

        
        double totalHora = totalSegundoFin - totalSegundoIni;
        
        // Imprime los segundos totales
        System.out.println("Tiempo trabajado total en SEGUNDOS: " + totalHora);

        /**
         * *** Por si hay cambio de día ****
         */
     
        double horaEnDosDias = 0;
        double minutosEnDosDias = 0;
        double segundosEnDosDias = 0;
        double segundosEnDosDias2 = 0;
        if (totalSegundoIni > totalSegundoFin) {  
            segundosEnDosDias = ((86400 - totalSegundoIni) + totalSegundoFin);
            System.out.println("Segundos en dos días: " + segundosEnDosDias);

            horaEnDosDias = Math.floor(segundosEnDosDias / 3600);
            minutosEnDosDias = Math.floor((segundosEnDosDias % 3600) / 60);
            segundosEnDosDias2 = Math.floor((segundosEnDosDias % 3600) % 60);

/**** También se podía haber calcualado así, pero es más lento
        while (segundos >= 3600) {
            contadorh++;
            segundos = segundos - 3600;
        }
       
        System.out.println(contadorh);
        
        while (segundos >= 60) {
            contadorm++;
            segundos = segundos - 60;
        }
        System.out.println(contadorm);
        System.out.println(segundos);
        ****/


            System.out.println("Horas trabajadas en dos días: " + horaEnDosDias);
            System.out.println("Minutos trabajados en dos días: " + minutosEnDosDias);
            System.out.println("Segundos trabajados en dos días: " + segundosEnDosDias2);

        }
        // Averiguar cuantos minutos son
        double minutos = 0;
        double hora = 0;
        while (totalHora >= 60) {
            minutos = minutos + 1;
            totalHora = totalHora - 60;
            if (minutos == 60) {
                hora = hora + 1;
                minutos = 0;
            }
        }
        System.out.println("Horas en un día: " + hora);
        System.out.println("Minutos en un día: " + minutos);
    }

}

 

Publicado en: Java Etiquetado como: java

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Carlos ZR

  • Sígueme en Twitter
  • Política de Cookies
  • Política de Privacidad
  • Aviso Legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los ajustes.

CARLOSZR.COM
Powered by  GDPR Cookie Compliance
Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.