python

Python: días que tiene un mes

En este post te voy a enseñar a obtener los días totales que tiene un mes, a partir del número de mes, tomando en cuenta el año bisiesto y el mes, ya que no todos los días tienen 30, 31 o 28 días.

Si bien el resultado será confiable, esto que te muestro es más bien la solución a un ejercicio de programación en Python que indica cuántos días tiene un mes tomando en cuenta el año.

Explicación del algoritmo

Para saber la cantidad de días que tiene un mes, necesitamos también el año; esto para el caso de febrero, pues bien sabemos que los años bisiestos agregan un día a febrero.

A partir del año y mes hacemos una comprobación con un if para evaluar el mes. En caso de que sea febrero, comprobamos si es o no bisiesto con una función expuesta anteriormente.

Código

Veamos el código. Tenemos la siguiente función que recibe dos enteros (año con mes) y devuelve un entero indicando la cantidad de días que tiene el mes en ese año. Toma en cuenta que el mes comienza a contar en 1, así que enero es 1 y diciembre es 12.

def obtener_dias_del_mes(mes: int, anio: int) -> int:
    # Abril, junio, septiembre y noviembre tienen 30
    if mes in [4, 6, 9, 11]:
        return 30
    # Febrero depende de si es o no bisiesto
    if mes == 2:
        if es_bisiesto(anio):
            return 29
        else:
            return 28
    else:
        # En caso contrario, tiene 31 días
        return 31

Como ves el código es fácil de entender. Si el mes es abril, junio, septiembre o noviembre se devuelve 30; en este caso ahorramos if con el operador in.

En caso de que sea febrero, se evalúa si el año es bisiesto y se devuelve ya sea 28 o 29. Finalmente, si no se cumple ninguno de los otros casos, se devuelve 31.

Poniendo todo junto

El código que demuestra el uso de la función, así como las funciones auxiliares escritas en Python quedan como se ve a continuación:

"""
    https://parzibyte.me/blog
"""


def es_bisiesto(anio: int) -> bool:
    return anio % 4 == 0 and (anio % 100 != 0 or anio % 400 == 0)


def obtener_dias_del_mes(mes: int, anio: int) -> int:
    # Abril, junio, septiembre y noviembre tienen 30
    if mes in [4, 6, 9, 11]:
        return 30
    # Febrero depende de si es o no bisiesto
    if mes == 2:
        if es_bisiesto(anio):
            return 29
        else:
            return 28
    else:
        # En caso contrario, tiene 31 días
        return 31


# Probamos
mes = 9
anio = 2020
dias = obtener_dias_del_mes(mes, anio)
print(dias)

Para el caso del código que he colocado, se imprimirá 30 días, pues esa es la cantidad de días que tiene el mes de septiembre del 2020.

Puedes leer más sobre Python en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.