Skip to content

Instantly share code, notes, and snippets.

@pvdrz
Created March 25, 2020 13:46
Show Gist options
  • Save pvdrz/32ec8dd06f4068539d81c655eebe0d5d to your computer and use it in GitHub Desktop.
Save pvdrz/32ec8dd06f4068539d81c655eebe0d5d to your computer and use it in GitHub Desktop.
# Traer la clase `date` a mi programa
from datetime import date
class Tarea:
def __init__(self, descripcion, categoria, vencimiento):
self.descripcion = descripcion
self.categoria = categoria
self.vencimiento = vencimiento
# La fecha de creacion siempre es hoy mismo
self.creacion = date.today()
# Todas las tareas se crean como no terminadas
self.terminada = False
def esta_vencida(self):
# Una tarea está vencida si su fecha de vencimiento es anterior a hoy
return self.vencimiento < date.today()
def terminar(self):
self.terminada = True
def esta_terminada(self):
return self.terminada
# TODO: retornar un String con la descripcion de la tarea y su fecha de vencimiento
# ejemplo: "Organizar cuarto vence el 2020-04-01"
def __repr__(self):
return None
# TODO: comparar dos tareas por su fecha de vencimiento con el operador "<"
def __lt__(self, otra):
return None
class Manejador:
def __init__(self):
self.tareas = []
def agregar_tarea(self, tarea):
self.tareas.append(tarea)
def terminar_tarea(self, indice):
self.tareas[indice].terminar()
# TODO: retornar la tarea que se vence primero
# Pista: utilizar el comparador "<"
def mas_urgente(self):
return None
# TODO: recorrer la lista de tareas y retornar la que tenga como descripcion el parametro del metodo
# si no existe, retornar None.
# Ejemplo: manejador.buscar("Organizar cuarto") debería retornar la tarea con esa descripción
def buscar_por_descripcion(self, descripcion):
return None
manejador = Manejador()
mi_tarea = Tarea("Organizar cuarto", "Casa", date(2020, 4, 1))
manejador.agregar_tarea(mi_tarea)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment