Saltar al contenido

Obtenga la fecha del número de semana ISO en Python

Posterior a consultar con expertos en el tema, programadores de varias ramas y profesores hemos dado con la respuesta al dilema y la compartimos en este post.

Solución:

Con el módulo de isoweek puedes hacerlo con:

from isoweek import Week
d = Week(2011, 40).monday()

%W considera que el primer lunes está en la semana 1, pero ISO define la semana 1 para que contenga el 4 de enero. Entonces el resultado de

datetime.strptime('2011221', '%Y%W%w')

está desfasado por uno si y solo si el primer lunes y el 4 de enero están en semanas diferentes. Este último es el caso si el 4 de enero es viernes, sábado o domingo. Así que lo siguiente debería funcionar:

from datetime import datetime, timedelta, date
def tofirstdayinisoweek(year, week):
    ret = datetime.strptime('%04d-%02d-1' % (year, week), '%Y-%W-%w')
    if date(year, 1, 4).isoweekday() > 4:
        ret -= timedelta(days=7)
    return ret

Puntuaciones y comentarios

Si tienes algún reparo o disposición de ascender nuestro tutorial te inspiramos ejecutar una apostilla y con placer lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *