Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel
Módulos de Cadenas y Tiempo
Módulo de Fecha y Hora
Objetivo
Ajustar registros y establecer fechas de envío para suministros utilizando funciones del módulo Date & Time.
El piso inferior del anexo de la nueva área de construcción es un almacén que contiene algunos de los suministros recientemente entregados, que han sido embalados y están listos para ser enviados a las áreas alrededor de la nueva construcción. Necesitan ser etiquetados con sus fechas y horas correctas, y asegurarse de que cualquier etiqueta que ya se haya aplicado contenga toda la información relevante. Para hacer esto podríamos tomarnos el tiempo para escribir y dar formato manualmente a las fechas y horas, pero hay una forma mucho más rápida de hacerlo utilizando el módulo de fecha y hora.
El módulo de fecha y hora se importa escribiendo import datetime, esto desbloquea una serie de funciones poderosas que te permiten leer y establecer tiempos y fechas formateados que puedes almacenar en objetos. También puedes usar: from datetime import timezone, timedelta para establecer zonas horarias. Las siguientes funciones se desbloquean al importar el módulo:
datetime.datetime(): Te permite establecer y almacenar una hora de tu elección, toma varios argumentos como los siguientes:year,month,day,hour,minute,second,microsecond,timezone. No es necesario ingresar todos los argumentos, sino solo los que desees usar.datetime.datetime.now(): Devuelve tu propia fecha y hora actual tal como aparecería en un reloj.datetime.datetime.date(): Devuelve solo la fecha del datetime, sin incluir la horadatetime.datetime.time(): Devuelve solo la hora del datetime, sin incluir la fechadatetime.datetime.timestamp(): Devuelve la marca de tiempo del datetime como un código UNIX.timezone(): Te permite establecer una zona horaria para usar con tus argumentos de fecha y hora.datetime.strftime(): Te permite extraer información específica de la fecha y hora y formatearla a tu gusto utilizando códigos específicos. Para nuestros propósitos usaremos los siguientes códigos:"%a": Día de la semana, abreviado"%d": Día del mes"%B": Nombre del mes, escrito en su totalidad"%I": Hora, ciclo de doce horas"%M": Minuto"%p": Meridiano, AM/PM"%x": Formato de fecha local"%X": Formato de hora local"%j": Día del año"%U": Semana del año"%z": Zona horaria UTC
Para comenzar, camina hacia la marca X de luz y enfrenta el escritorio, utiliza la función read() para verificar las fechas de empaque para los envíos así como las fechas de inicio y finalización de los proyectos. Toma nota de las fechas de inicio y finalización proporcionadas en el documento (mes/día/año). Los tres (3) primeros puntos de datos escritos en el memorando, así como la zona horaria, están preescritos en el editor de código para facilitar su uso en funciones posteriores.
En este mismo espacio, crea una variable llamada today y almacena en ella el valor de retorno de datetime.datetime.now(). Utiliza str() para convertir el valor en una cadena para que sea legible, de esta manera: today = str(datetime.datetime.now()). Utiliza la función display() para anotar la fecha de hoy en el memorando, con esto se establece la fecha para las asignaciones de envío y puedes comenzar a agregar los puntos de datos faltantes en las áreas necesarias.
Camina hacia la marca X dorada junto al escritorio y aquí estaremos calculando y anotando el número de días que tomará este proyecto. Hay dos variables escritas en el editor llamadas start y end que almacenan datetime. Escribe las fechas de inicio y finalización que leíste previamente en los espacios proporcionados. Crea una variable llamada result y almacena en ella el resultado de una sustracción entre las variables end y start. Utiliza la función str() para convertir el valor en un formato de cadena legible, de esta manera: result = str(end-start). Utiliza la función write() para anotar la variable result, para marcar cuánto tiempo tomará.
A partir de aquí vamos a movernos hacia la marca X dorada junto a la alfombra roja y nos moveremos hacia las marcas X junto a las cajas de la alfombra roja en la columna de la izquierda. Aquí estaremos agregando partes específicas de las fechas de empaque que faltan en las cajas utilizando datetime(). En el editor habrá una fecha preescrita asignada a la variable red_date, extraeremos varios datos y los utilizaremos para etiquetar las cajas.
Para las alfombras rojas:
-
En la marca X dorada, enfrenta las cajas y crea una variable llamada
red_daysy almacena en ella la fecha sin la hora usandodate()de la variablered_datey, conviértela usandostr(), de esta manera:red_days = str(red_date.date()). Usa la funciónwrite()para etiquetar las cajas utilizandored_days. -
En la marca X de luz, enfrenta las cajas y crea una variable llamada
red_timey almacena en ella la hora sin la fecha usandotime()de la variablered_datey conviértela usandostr(), de esta manera:red_time = str(red_date.time()). Usa la funciónwrite()para etiquetar las cajas utilizandored_time. -
En la marca X oscura, enfrenta las cajas y crea una variable llamada
red_timestampy almacena en ella la marca de tiempo calculada a partir de la variablered_date, de esta manera:red_timestamp = red_date.timestamp(). Usa la funciónwrite()para etiquetar las cajas utilizandored_timestamp.
Continúa con las marcas X delante de las cajas de la alfombra azul. Al igual que antes, hay una serie de tres (3) marcas X de colores, en este caso haciendo referencia a la variable preescrita blue_date para completar las etiquetas. Recorre la columna y utiliza la función strftime() para agregar elementos faltantes a las etiquetas de envío. A diferencia de las funciones anteriores, esta requiere un código específico para extraer y formatear elementos en la fecha objetivo. Por ejemplo, si queremos obtener el día de la semana para la variable blue_date usarás el código "%a" con la función strftime() de esta manera: blue_date.strftime("%a").
Para las marcas X junto a las cajas de la alfombra azul, utiliza la función strftime() con el código específico requerido. Revisa la lista de códigos previamente detallada según los requisitos. Para las alfombras azules:
-
En la marca X dorada, enfrenta las cajas y crea una variable llamada
blue_weekdayy almacena en ella el día de la semana utilizandostrftime()a partir de la variableblue_datede esta manera:blue_day = blue_date.strftime("%a"). Crea otra variable llamadablue_dayy almacena el día del mes utilizandostrftime()a partir de la variableblue_date. Crea otra variable llamadablue_monthy almacena el nombre del mes, escrito en su totalidad, utilizandostrftime()a partir de la variableblue_date. Inserta las variablesblue_weekday,blue_dayyblue_monthen la funciónwrite()preescrita. -
En la marca X de luz, enfrenta las cajas y crea una variable llamada
blue_houry almacena en ella la hora, ciclo de doce horas, utilizandostrftime()a partir de la variableblue_date. Crea otra variable llamadablue_minutey almacena el minuto utilizandostrftime()a partir de la variableblue_date. Crea otra variable llamadablue_meridiany almacena el meridiano, AM/PM, utilizandostrftime()a partir de la variableblue_date. Inserta las variablesblue_hour,blue_minuteyblue_meridianen la funciónwrite()preescrita. -
En la marca X oscura, enfrenta las cajas y crea una variable llamada
blue_local_datey almacena en ella el formato de fecha local, utilizandostrftime()a partir de la variableblue_date. Crea otra variable llamadablue_local_timey almacena el formato de hora local utilizandostrftime()a partir de la variableblue_date. Inserta las variablesblue_local_date,blue_local_timeyblue_meridianen la funcióndisplay()preescrita.
Finalmente, nos moveremos a la marca X dorada junto a la alfombra verde y nos desplazaremos hacia las marcas X junto a las cajas de la alfombra verde en la columna de la derecha. Aquí continuaremos agregando partes específicas de las fechas de empaque que faltan en las cajas utilizando strftime(). En el editor habrá una fecha preescrita asignada a la variable green_date, de la que extraeremos varios datos y los utilizaremos para etiquetar las cajas.
Para las alfombras verdes:
-
En la marca X dorada, enfrenta las cajas y crea una variable llamada
green_dayy almacena en ella el día del año utilizandostrftime()a partir de la variablegreen_date. Usa la funciónwrite()para etiquetar las cajas utilizandogreen_day. -
En la marca X de luz, enfrenta las cajas y crea una variable llamada
green_weeky almacena en ella la semana del año utilizandostrftime()a partir de la variablegreen_date. Usa la funciónwrite()para etiquetar las cajas utilizandogreen_week. -
En la marca X oscura, enfrenta las cajas y crea una variable llamada
green_timezoney almacena en ella la zona horaria UTC utilizandostrftime()a partir de la variablegreen_date. Usa la funciónwrite()para etiquetar las cajas utilizandogreen_timezone.
Una vez que todas las etiquetas en las marcas X junto a las alfombras de colores hayan sido anotadas, el nivel estará completo.