Untitled

Anonymous
Python
11/08/2026 5:59 PM
2.1 KB
7
Indexable
Never
import json
import os
from datetime import datetime

ARCHIVO = "tareas.json"

def cargar_tareas():
    if os.path.exists(ARCHIVO):
        with open(ARCHIVO, "r", encoding="utf-8") as archivo:
            return json.load(archivo)
    return []

def guardar_tareas(tareas):
    with open(ARCHIVO, "w", encoding="utf-8") as archivo:
        json.dump(tareas, archivo, indent=4, ensure_ascii=False)

def agregar_tarea(tareas):
    nombre = input("Nombre de la tarea: ")

    tarea = {
        "id": len(tareas) + 1,
        "nombre": nombre,
        "completada": False,
        "fecha": datetime.now().strftime("%d/%m/%Y %H:%M")
    }

    tareas.append(tarea)
    guardar_tareas(tareas)
    print("¡Tarea agregada correctamente!")

def mostrar_tareas(tareas):
    if not tareas:
        print("No hay tareas registradas.")
        return

    for tarea in tareas:
        estado = "Completada" if tarea["completada"] else "Pendiente"
        print(f'{tarea["id"]}. {tarea["nombre"]} - {estado}')

def completar_tarea(tareas):
    mostrar_tareas(tareas)

    try:
        identificador = int(input("ID de la tarea: "))

        for tarea in tareas:
            if tarea["id"] == identificador:
                tarea["completada"] = True
                guardar_tareas(tareas)
                print("Tarea completada.")
                return

        print("Tarea no encontrada.")

    except ValueError:
        print("Introduce un número válido.")

def main():
    tareas = cargar_tareas()

    while True:
        print("\n===== GESTOR DE TAREAS =====")
        print("1. Agregar tarea")
        print("2. Mostrar tareas")
        print("3. Completar tarea")
        print("4. Salir")

        opcion = input("Selecciona una opción: ")

        if opcion == "1":
            agregar_tarea(tareas)
        elif opcion == "2":
            mostrar_tareas(tareas)
        elif opcion == "3":
            completar_tarea(tareas)
        elif opcion == "4":
            print("Hasta luego.")
            break
        else:
            print("Opción inválida.")

if __name__ == "__main__":
    main()
Editor is loading...
Leave a Comment