Cuando trabaja con fechas y tiempo en Python, a menudo necesita calcular las diferencias de tiempo. En este tutorial, aprenderá cómo calcular la diferencia entre dos marcas de tiempo en horas, minutos y segundos.
Al final de este tutorial, lo sabrá
- Cómo usar el módulo de DateTime de Python para funcionar con fechas y tiempo,
- ¿Qué son los objetos de Timedelta y cómo son útiles?
- Calcule la diferencia de tiempo entre dos marcas de tiempo: en horas, minutos y segundos.
Cómo usar el módulo de fecha y hora de Python
Para trabajar con fechas y tiempo en Python, usará el módulo DateTime. El módulo DateTime es parte de la biblioteca estándar de Python. Como tal, puede importarlo a su entorno de trabajo de inmediato, por ejemplo:
Importar DateTetime
Para calcular la diferencia de tiempo, debe crear dos marcas de tiempo diferentes. Puedes elegir crear:
- Dos objetos de fecha,
- dos objetos de tiempo, o
- Una combinación de fecha y hora: fechas y objetos de hora.
Cómo crear un objeto de fecha en Python
Importemos la clase de fecha del módulo DateTime. Para crear un objeto de fecha en Python, puede usar la sintaxis común datetime. date (, ,,,). Aquí hay un ejemplo de creación de una fecha de objeto de fecha1:
Desde DateTime Import Date1 = DateTime. Date (2022, 3, 27) Impresión (Date1) # Salida: 2022-03-27
Puede probar el código en el compilador Toadmin. ru Python para probarlo. O instale Python en su computadora.
Como se muestra arriba, cuando imprime una fecha, está formateado en formato Yyyyyy-MM-DD para fechas.
Nota. Recuerde especificar el mes como un entero sin ceros iniciales. Probablemente esté acostumbrado a agregar un cero inicial al mes al registrar las fechas.
Por ejemplo, para especificar una fecha en junio, el sexto mes del año: use 6, no 06.
Por ejemplo, intente ejecutar el siguiente fragmento de código donde se especifica el mes como 03 en lugar de solo 3. Verá que produce un error de sintaxis, como se muestra a continuación
date1 = DateTime. Date (2022, 03, 27) Imprimir (Date1) # Archivo de mensaje de error "", línea 1 date1 = datetime. date (2022, 03, 27) ^ sintaxError: token inválido
Veamos ahora cómo crear un objeto de tiempo en Python.
Cómo crear un objeto de tiempo en Python
Para crear un objeto de tiempo, importemos una clase de tiempo. Cualquier objeto de tiempo de Python se puede crear utilizando una clase de tiempo especificando los siguientes atributos de clase: horas, minutos, segundos y microsegundos.
Sin embargo, todos estos atributos son opcionales. Si no especifica un atributo en particular, digamos segundos, se predeterminará a 0.
El siguiente fragmento de código muestra cómo puede crear un tiempo de tiempo de tiempo1. Al igual que con el objeto Fate, puede imprimir el objeto de hora para ver la hora formateada.
Desde el tiempo de importación de DateTime1 = DateTime. Time (13, 27, 45, 4600) Impresión (Time1) # Salida: 13: 27: 45. 004600
Cómo crear un objeto de fecha y hora en Python
Como puede ver, el objeto de fecha no tiene información de tiempo. Y un objeto de tiempo no tiene información de fecha.
Sin embargo, en la práctica, necesitará información de fecha y hora. Por lo tanto, se recomienda usar la clase DateTime.
Puede acceder a la clase DateTime y crear objetos DateTime en Python como se muestra a continuación:
DT1 = DateTime. Datetime (2022, 3, 27, 13, 27, 45, 46000) Impresión (DT1) # Salida: 2022-03-27 13: 27: 45. 046000
Ahora creemos otro objeto DateTime DT2 sin el segundo atributo. Puede ver que está configurado en 0, el valor predeterminado.
dt2 = DateTime. Datetime (2022, 6, 30, 14, 28) Impresión (DT2) # Salida: 2022-06-30 14:28:00
Entonces, ha aprendido a crear marcas de tiempo en Python, como fecha, hora y fecha y hora. Ahora es el momento de ver cómo puede calcular la diferencia entre dos marcas de tiempo.
Vaya a la siguiente sección para averiguarlo.
Cómo usar el objeto Timedelta en Python
En Python, Timedelta se refiere a un intervalo de tiempo. Es la diferencia entre dos fechas, hora o fecha de fecha y hora.
Si agrega o restas dos objetos de fecha, hora o hora y hora, obtiene un objeto Timedelta. Este objeto Timedelta tiene atributos y métodos útiles que pueden ayudarlo a calcular la diferencia de tiempo.
Siga adelante y calculemos la diferencia entre dos objetos de fecha y hora DT1 y DT2.
dt1 = DateTime. datetime (2022, 3, 27, 13, 27, 45, 46000) dt2 = datetime. datetime (2022, 6, 30, 14, 28) tdelta = dt2 – dt1 imprime (tdelta) imprime (tipo (tdelta)) # Salida 95 días, 1: 00: 14. 954000
Del fragmento de código anterior, podemos ver que la variable TDelta contiene la diferencia de tiempo entre DT1 y DT2. Y el tipo de TDelta se verifica con la clase Timedelta utilizando la función Tipo () incorporada de Python.
Ahora codicemos otro ejemplo.
Cómo encontrar la diferencia de tiempo entre dos fechas
Tomemos un ejemplo simple pero interesante.
La tarea: Calcule la diferencia de tiempo entre la fecha actual (hoy) y su cumpleaños. Para hacer esto, establezca hoy como la primera marca de tiempo y su cumpleaños como la segunda marca de tiempo.
Como primer paso, creemos dos objetos de fecha y hora:
- uno para hoy, llamémoslo hoy, y
- otro para tu cumpleaños, llamémoslo cumpleaños
La clase DateTime tiene un método ahora () que le brinda la fecha y hora locales actuales. Así que usémoslo hoy es nuestra fecha de referencia.
hoy = DateTime. Datetime. Now () Imprimir (hoy) # Salida de muestra: 2022-01-22 09: 10: 18. 489538
En el código a continuación, reemplace el cumpleaños con su cumpleaños para calcular el tiempo que queda hasta su cumpleaños este año.
Si está leyendo esto después de que su cumpleaños haya pasado, no dude en establecer el cumpleaños en su próximo cumpleaños.
Bday = DateTime. Datetime (2022, 8, 30, 11, 59) Impresión (Bday) # Salida de muestra: 2022-08-30 11:59:00
El siguiente paso es calcular TIME_DIFF, que es el objeto Timedleta como se explicó anteriormente. Simplemente reste hoy del cumpleaños y obtendrá la diferencia de tiempo.
TIME_DIFF = Bday - hoy imprime (f "su cumpleaños está en") # Salida Su cumpleaños es en 220 días, 2: 46: 00. 127416
Para averiguar la cantidad de días restantes, use el atributo de días en Time_diff como se muestra a continuación:
tdays = time_diff. days imprime (f "su cumpleaños está en días"). # Salida Su cumpleaños es en 220 días.
Cómo encontrar la diferencia horaria en segundos
Ahora calculemos cuántos segundos quedan hasta su cumpleaños.
Para calcular la diferencia de tiempo total en segundos, use el método Total_Seconds () para el objeto Timedelta Time_diff.
tsecs = time_diff. total_seconds () imprime (f "su cumpleaños está a segundos") # Salida Su cumpleaños es 19017960. 127416 segundos de distancia.
Bueno, ¡es mucho tiempo para esperar!
Sin embargo, ahora sabe cómo calcular la diferencia de tiempo entre dos marcas de tiempo en segundos.
Ahora volvamos a algunos conceptos básicos y escribamos lo siguiente. Hay 24 horas en un día, 60 minutos en una hora y 60 segundos en un minuto.
Esto se resume en la imagen a continuación:
Horas, minutos y segundos
Entonces, para convertir segundos a minutos, horas y días, puede usar la siguiente tabla y dividirlo por el factor de conversión apropiado.
Tabla de conversión de tiempo
En las siguientes secciones, convierta la diferencia de tiempo en segundos a minutos y horas.
Cómo encontrar la diferencia horaria en minutos
Para obtener la diferencia de tiempo en minutos, solo necesita dividir el número total de segundos por 60.
Dividemos los tsecs por 60 y lo almacenemos en la variable tmins, por ejemplo:
tmins = tsecs/60 print(f "Faltan minutos para tu cumpleaños") # Output Faltan minutos para tu cumpleaños 316966. 0021236.
Cómo encontrar la diferencia horaria en horas
Ahora que ha calculado la diferencia horaria en minutos, puede dividirla por un factor de 60 para obtener la diferencia en horas. O puede dividir el número total de segundos por 60 * 60 = 3600.
thrs = tsecs/(60*60) print(f "Faltan horas para tu cumpleaños") # Salida Faltan 5282. 76670206 horas para tu cumpleaños.
Entonces, ha aprendido a calcular la diferencia horaria en cualquier unidad de su elección.
Conclusión
En esta lección has aprendido cómo
- crear y trabajar con fechas y horas usando el módulo de fecha y hora de Python,
- usar objetos timedelta para obtener un intervalo de tiempo o una diferencia de tiempo, y
- calcular las diferencias de tiempo en segundos, minutos y horas.
Espero que hayas encontrado útil esta lección. Ahora que sabe todo sobre el cálculo de la diferencia horaria en Python, es hora de poner en práctica sus habilidades.
¡Diviértete aprendiendo y programando!
Aprenda cómo escribir código igual o no igual o hacer un juego de serpientes en Python aquí.