En este artículo, exploremos los diversos métodos para encontrar la diferencia entre los dos períodos de tiempo en Java. Para simplificar, supongamos que el Período de tiempo que se nos proporciona tiene el formato HH:MM:SS
Ejemplo
Input : 1st Time Period :- 18:00:00 2nd Time Period :- 21:00:00 Output: 3 hours 0 minutes and 0 seconds Input : 1st Time Period :- 17:00:00 2nd Time Period :- 23:22:00 Output: 6 hours 22 minutes and 0 seconds
Método 1: usar la clase SimpleDateFormat y la clase Date
La clase SimpleDateFormat se agregó al paquete java.text en la séptima versión de JDK. Analice el período de tiempo en el formato HH:MM:SS creando un objeto SimpleDateFormat. El objeto SimpleDateFormat analiza el período de tiempo y devuelve un objeto de fecha que se puede usar para calcular el tiempo transcurrido.
A continuación se muestra el código para el enfoque anterior:
Java
// Java Program to Find the difference // between Two Time Periods // Importing the Date Class from the util package import java.util.*; // Importing the SimpleDateFormat // Class from the text package import java.text.*; public class GFG { public static void main(String[] args) throws Exception { // Dates to be parsed String time1 = "18:00:00"; String time2 = "7:30:50"; // Creating a SimpleDateFormat object // to parse time in the format HH:MM:SS SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss"); // Parsing the Time Period Date date1 = simpleDateFormat.parse(time1); Date date2 = simpleDateFormat.parse(time2); // Calculating the difference in milliseconds long differenceInMilliSeconds = Math.abs(date2.getTime() - date1.getTime()); // Calculating the difference in Hours long differenceInHours = (differenceInMilliSeconds / (60 * 60 * 1000)) % 24; // Calculating the difference in Minutes long differenceInMinutes = (differenceInMilliSeconds / (60 * 1000)) % 60; // Calculating the difference in Seconds long differenceInSeconds = (differenceInMilliSeconds / 1000) % 60; // Printing the answer System.out.println( "Difference is " + differenceInHours + " hours " + differenceInMinutes + " minutes " + differenceInSeconds + " Seconds. "); } }
Difference is 10 hours 29 minutes 10 Seconds.
Complejidad de tiempo: O(1)
Método 2: – Usando la clase LocalTime y ChronoUnit
Java ha traído un montón de funciones en la octava versión de JDK y algunas de ellas son las clases LocalTime y ChronoUnit presentes en el paquete java.time. El objeto LocalTime analiza la fecha en el formato HH:MM:SS y ChronoUnit se usa para obtener la diferencia en horas, minutos y segundos.
A continuación se muestra el código para el enfoque anterior:
Java
// Java program to get the difference // between Two Time Periods in Java // Importing the LocalTime class import java.time.*; // Importing the ChronoUnit class import java.time.temporal.ChronoUnit; class GFG { public static void main(String[] args) { // Parsing Time Period in the format HH:MM:SS LocalTime time1 = LocalTime.of(18, 00, 00); LocalTime time2 = LocalTime.of(21, 22, 00); // Calculating the difference in Hours long hours = ChronoUnit.HOURS.between(time1, time2); // Calculating the difference in Minutes long minutes = ChronoUnit.MINUTES.between(time1, time2) % 60; // Calculating the difference in Seconds long seconds = ChronoUnit.SECONDS.between(time1, time2) % 60; // Printing the difference System.out.println( "Difference is " + hours + " hours " + minutes + " minutes " + seconds + " seconds."); } }
Difference is 3 hours 22 minutes 0 seconds.
Complejidad de tiempo: O(1)
Publicación traducida automáticamente
Artículo escrito por coder_srinivas y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA