Tema: Python - Manejo de la librería datetime

Objetivo de aprendizaje

Dominar el manejo de la librería datetime en Python para manipular fechas y tiempos con precisión, explorando sus funciones principales a través de ejemplos prácticos y contextualizados, desarrollando la capacidad de resolver problemas reales relacionados con gestión del tiempo, y fomentando una actitud curiosa, metódica y colaborativa frente al código como herramienta para comprender y organizar nuestra realidad temporal.

Contextualización

Imagina que estás organizando un evento importante: el festival de tu colegio. Tienes que coordinar ensayos, reservar espacios, enviar recordatorios y asegurarte de que todo ocurra en el momento exacto. La vida, como la programación, es una danza con el tiempo.

En Python, la librería datetime es como tener un reloj maestro y un calendario inteligente en tus manos. Te permite capturar el instante preciso, calcular diferencias entre momentos importantes, proyectar fechas futuras y organizar el tiempo de manera lógica y eficiente.

Este taller no es solo sobre código; es sobre cómo dominar una de las dimensiones más fundamentales de nuestra existencia a través de la programación. Acompáñame a descubrir cómo Python puede ayudarnos a entender y gestionar mejor nuestro tiempo, tanto en la pantalla como en la vida.

Desarrollo de la actividad

Vamos a explorar los componentes esenciales de la librería datetime: datetime para momentos específicos, timedelta para períodos de tiempo, y date y time para trabajar con fechas y horas por separado.

1. Capturando el momento presente

El objeto datetime nos permite trabajar con fecha y hora simultáneamente. Así como fotografías un momento especial, datetime captura un instante preciso en el tiempo.

from datetime import datetime

# Capturar el momento actual
ahora = datetime.now()
print("Fecha y hora actual:", ahora)
print("Año:", ahora.year)
print("Mes:", ahora.month)
print("Día:", ahora.day)
print("Hora:", ahora.hour)
print("Minuto:", ahora.minute)

# Crear una fecha específica
mi_cumple = datetime(2024, 7, 15, 10, 30, 0)
print("Mi próximo cumpleaños:", mi_cumple)

2. Calculando diferencias con timedelta

¿Cuántos días faltan para tus vacaciones? ¿Cuánto tiempo ha pasado desde que empezó el año escolar? timedelta es la herramienta perfecta para responder estas preguntas.

from datetime import datetime, timedelta

# Calcular fechas futuras y pasadas
hoy = datetime.now()
print("Hoy es:", hoy.date())

# ¿Qué día será en 10 días?
en_10_dias = hoy + timedelta(days=10)
print("En 10 días será:", en_10_dias.date())

# ¿Qué día fue hace 15 días?
hace_15_dias = hoy - timedelta(days=15)
print("Hace 15 días fue:", hace_15_dias.date())

# Calcular tiempo entre dos fechas
inicio_escolar = datetime(2024, 5, 2)
tiempo_transcurrido = hoy - inicio_escolar
print("Días de clase transcurridos:", tiempo_transcurrido.days)
print("Semanas transcurridas:", tiempo_transcurrido.days // 7)

3. Formateando fechas para humanos

Aprenderemos a presentar las fechas de manera comprensible y atractiva, adaptándolas a diferentes contextos y necesidades de comunicación.

from datetime import datetime

evento = datetime(2024, 11, 15, 18, 30, 0)

# Formatear fecha de diferentes maneras
print("Formato completo:", evento.strftime("%A, %d de %B de %Y a las %I:%M %p"))
print("Formato corto:", evento.strftime("%d/%m/%Y"))
print("Solo hora:", evento.strftime("%H:%M"))
print("Fecha amigable:", evento.strftime("Evento: %d de %B"))

# Convertir texto a fecha
texto_fecha = "15/11/2024 18:30"
fecha_desde_texto = datetime.strptime(texto_fecha, "%d/%m/%Y %H:%M")
print("Fecha desde texto:", fecha_desde_texto)

Reflexión metacognitiva

Después de ejecutar estos ejemplos, tómate un momento para reflexionar: ¿En qué situaciones de tu vida podrías aplicar estos conocimientos? Piensa en proyectos personales, organizativos o académicos donde el manejo preciso del tiempo sea crucial.

El reto final

El Planificador de Proyectos Escolares

Eres el coordinador del festival de fin de año de tu colegio. Debes crear un programa en Python que:

  • Permita registrar los eventos principales (inauguración, presentaciones artísticas, premiaciones, clausura).
  • Calcule automáticamente las fechas de los ensayos (2 semanas antes de cada evento).
  • Genere recordatorios para los participantes (3 días antes de cada ensayo).
  • Muestre un calendario completo del festival con fechas y horas formateadas de manera amigable.
  • Calcule la duración total del festival y el tiempo entre eventos.

El reto te invita a pensar como un gestor de proyectos, tomando decisiones sobre cómo organizar el tiempo, priorizar actividades y comunicar fechas de manera efectiva. No hay una única solución correcta; explora diferentes enfoques y comparte tu perspectiva con tus compañeros.

Evaluación lúdica

Pon a prueba lo aprendido con este juego interactivo. Responde 5 preguntas sobre datetime y timedelta. ¡Cada respuesta correcta suma puntos!

Desafío DateTime

Puntaje: 0/5