En este post de programación en Python vamos a resolver varios ejercicios con fechas. Se trata del tema introducción a la programación en donde se extra el año, mes y día de una fecha representada como entero.
Además de eso se muestran otras funciones que validan el año, el mes, obtienen el nombre del mes, etcétera.
La solicitud dice así:
Una forma de representar fechas es utilizando números enteros de la siguiente forma: los primeros cuatro dígitos corresponden al año, los siguiente dos dígitos corresponden al mes, y los últimos dos dígitos corresponden al día. Por ejemplo, el número 20200901 representa la fecha 01/09/2020.
Para esta tarea, supondremos que los números que representan fechas siempre tienen 8 dígitos, y que el primer dígito siempre es distinto a 0 (por lo que sólo sirve para representar fechas entre el año 1000 y el año 9999).
El objetivo de esta tarea es programar un módulo con funciones que permitan trabajar con fechas en este formato. Las funciones que Ud. debe implementar son las siguientes:
year
: recibe una fecha representada como entero y devuelve un texto con el año de la fecha.month
: recibe una fecha representada como entero y devuelve un texto con el mes de la fecha. Si el número del mes no es válido, debe devolver el texto ‘FECHA INCORRECTA’.monthName
: recibe una fecha representada como entero y devuelve un texto con el nombre del mes, en español, de la fecha (‘enero’, ‘febrero’, . . . , ‘diciembre’). Si el número del mes no es válido, debe devolver el texto ‘FECHA INCORRECTA’.day
: recibe una fecha representada como entero y devuelve un texto con el día de la fecha. Si el número del día no es válido (esto depende del mes, considere si el año es bisiesto para el caso de febrero) o el mes es inválido (por lo que no se puede verificar el día), debe devolver el texto ‘FECHA INCORRECTA’.date2Text
: recibe una fecha representada como entero y devuelve un texto con la fecha completa en el formato ‘DD/MM/AAAA’. Por ejemplo, date2Text(20200903)
devuelve el texto ’03/09/2020′. Si el mes o el día no son válidos, debe devolver el texto ‘FECHA INCORRECTA’.date2TextName
: recibe una fecha representada como entero y devuelve un texto con la fecha completa en el formato ‘X de Y de Z’, usando el nombre del mes. Por ejemplo, date2Text(20200903)
devuelve el texto ‘3 de septiembre de 2020’. Si el mes o el día no son válidos, debe devolver el texto ‘FECHA INCORRECTA’.manyDates
: recibe un número con varias fechas representadas como entero (cantidad no definida a priori), y devuelve un texto con las fechas en el formato ‘DD/MM/AAAA’, con cada fecha separada por un salto de línea (carácter ‘\n’) y en el mismo orden que aparecen en el número. Por ejemplo, manyDates(2020090320200904)
devuelve el texto '\n03/09/2020\n04/09/2020'
. Note que después de la ´ultima fecha no hay un carácter de salto de línea , pero sí en el primer carácter del texto. Si algunas de las fechas no son válidas, solo sus línea correspondientes deben decir ‘FECHA INCORRECTA’.sameDates
: recibe dos parámetros, un número con varias fechas representadas como entero (cantidad no definida a priori) y una fecha representada como entero, y devuelve la cantidad de fechas iguales en el entero con varias fechas a la fecha correspondiente al segundo parámetro, pero sólo considerando el día y mes (el año puede ser distinto). Por ejemplo, sameDates(202009032021090420000903, 21000903)
devuelve 2.Para resolver estos ejercicios de programación en Python necesitamos algunas funciones auxiliares. Además, se solicita el uso de las mismas y también se sugiere evitar repetición de código, por lo que debemos usar métodos que hagan distintas cosas para la fecha.
Así que las auxiliares quedan así:
A continuación vemos la solución:
El código completo queda así. Recuerda que puedes invocar a las funciones desde cualquier lugar. En este caso solo estoy haciendo una prueba al final del archivo.
Puedes probarlo en este enlace.
En mi blog te he enseñado a usar youtube-dl para descargar vídeos con permiso del…
Siguiendo con los tutoriales que consumen la API de los Bots de Telegram con cURL…
En un post previo te enseñé a enviar un mensaje en nombre de un Bot…
En este artículo te voy a mostrar una guía para imprimir en una impresora térmica…
La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…
Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…
Esta web usa cookies.