Ejercicio fechas y archivos

import datetime


def primerDiaLaborable(fecha):
    if fecha.weekday() >= 5:
        # pasar al lunes ¿Cómo?
        # Si es un 5 le sumo 2 y si es un 6 le sumo 1
        # 5-->2
        # 6-->1
        # suman 7 7-weekday()=lo que yo le tengo que sumar
        fecha += datetime.timedelta(days=7-fecha.weekday())
        """
        if fecha.weekday() == 5:
            fecha += datetime.timedelta(days=2)
        if fecha.weekday() == 6:
            fecha += datetime.timedelta(days=1)
            """
    return fecha


def crearCitas(fechaInicio, diasIntervalo, numero):
    """
    Función para crear una serie de citas
    :param fechaInicio: La fecha en que empiezan las citas
    :param diasIntervalo:  Cada cuantos días será la cita
    :param numero: El número de citas
    :return: Una lista con todas las citas
    """
    citas = []
    intervalo = datetime.timedelta(days=diasIntervalo)
    for i in range(numero):
        # antes de añadir la fecha a la lista tengo que comprobar si es fin de semana o no
        fechaInicio = primerDiaLaborable(fechaInicio)
        citas.append(fechaInicio)
        fechaInicio += intervalo
    return citas


def crearArchivo(nombre, titulo, citas):
    archivo = open(nombre, "w")
    for cita in citas:
        archivo.write(cita.strftime("%d/%m/%Y") + ";" + titulo + "\n")
    archivo.close()


hoy = datetime.datetime.now()
print(hoy.weekday())
misCitas = crearCitas(hoy, 10, 20)
print(misCitas)
crearArchivo("citas.txt", "Seguimiento Python", misCitas)
# Mi idea va a ser crear un archivo para crear citas. Este archivo lo voy a importar
# con un programa de calendario
# El formato que necesito es
# d/m/Y;titulo de la cita
# Como añadido: no puedo tener citas en fin de semana. Si aluna cita cae en fin de semana
# se pasa al lunes siguiente

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos