Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Fechas y horas en Python La aplicación de cumpleaños Desafíate a ti mismo

feliz cumpleaños rubik

¡Estos desafíos fueron una excelente práctica!

Aquí están mis soluciones (mi respuesta al desafío 3 probablemente sea ineficiente, pero es lo suficientemente simple).

from dateutil import relativedelta
import datetime
from utils import no_s_if_1

def date_parser(persona):
    format_string = "%Y-%m-%d"
    cumpleaños_dt = datetime.datetime.strptime(persona['cumpleaños'], format_string)
    return cumpleaños_dt

def diff_func(persona):
    cumpleaños_dt = date_parser(persona)
    ahora = datetime.datetime.ahora()
    cumpleaños_este_año = cumpleaños_dt.replace(año=ahora.año)
    diferencia = cumpleaños_este_año - ahora
    return diferencia


def cumpleaños_próximos(lista_personas, days):
    # TODO: escribir código que encuentre todos los próximos cumpleaños en los próximos 90 días
    # 90 se pasa como parámetro desde menus.py
    # Plantilla:
    # PERSONA cumple EDAD en X días el MES DÍA
    # PERSONA cumple EDAD en X días el MES DÍA
    # print("Función de Cumpleaños Próximos")
    # print(people_list)
    # pass

    sorted_bd_list = 
    sorted_person_list = 
    para persona en lista_personas:
        diferencia = diff_func(persona)

        sorted_bd_list.append(diferencia.days)

    sorted_bd_list.ordenar()

    para dif en sorted_bd_list:
        para persona en lista_personas:
            diferencia = diff_func(persona)

            if diferencia.days == dif:
                sorted_person_list.append(persona)

    para persona en sorted_person_list:
        cumpleaños_dt = date_parser(persona)

        ahora = datetime.datetime.ahora()

        cumpleaños_este_año = cumpleaños_dt.replace(año=ahora.año)

        diferencia = cumpleaños_este_año - ahora

        edad_cumplida = relativedelta.relativedelta(ahora, cumpleaños_dt).años + 1

        if 0 <= diferencia.days <= days:
            print(f"{person['name']} cumple {turning_age} en {no_s_if_1(difference.days, 'días')} el {birthday_this_year.strftime('%B %d')}")
        if -365 <= diferencia.days <= -275:
            hey = diferencia.days + 365
            print(f"{person['name']} cumple {turning_age} en {no_s_if_1(hey, 'días')} el {birthday_this_year.strftime('%B %d')}")

    print(sorted_bd_list)
    # print(sorted_person_list)
    # print(people_list)


def display_age(persona):
    # TODO: escribir código para mostrar la edad de la persona
    # Plantilla:
    # PERSON tiene X años, X meses y X días de edad
    cumpleaños_dt = date_parser(persona)
    hoy = datetime.fecha.hoy()
    diferencia = relativedelta.relativedelta(hoy, cumpleaños_dt)

    print(f{person['name']} tiene {no_s_if_1(difference.years, 'años')}, {no_s_if_1(difference.months, 'meses')}, y {no_s_if_1(difference.days, 'días')} de edad)
    # print(person)
    # pass


def display_age_difference(people):
    # TODO: escribir el código para mostrar la diferencia de edad entre personas
    # Plantilla:
    # PERSON es mayor

    p0_dt = date_parser(people[0])
    p1_dt = date_parser(people[1])

    if p0_dt < p1_dt:
        diferencia = relativedelta.relativedelta(p1_dt, p0_dt)
        print(f{people[0]['name']} es mayor)
    else:
        diferencia = relativedelta.relativedelta(p0_dt, p1_dt)
        print(f{people[1]['name']} es mayor)

    # print(difference)

    print(fLa diferencia de edad entre {people[0]['name']} y {people[1]['name']} es: {no_s_if_1(difference.years, 'años')}, {no_s_if_1(difference.months, 'meses')}, y {no_s_if_1(difference.days, 'días')})
    # print(people)
    # pass

¡Que tengas un excelente día!

1 Respuesta

Me alegra saber que has disfrutado esta práctica adicional 😃

¡Gracias por compartir tu solución!