Obtener la fecha del número de semana automáticamente para un año específico

Obtener la fecha del número de semana automáticamente para un año específico

¿Hay alguna manera de generar automáticamente la fecha según el número de semana?

Más precisamente: ingreso el número de semana para un año específico y como resultado obtengo la fecha de lunes a domingo.

Hay varios paquetes para crear calendarios, pero ninguno parece permitirlo. ¿Alguien tiene un buen consejo?

(Taco Hoekwater hizo algo parecido a mi pregunta, pero al revés: Macro para el número de semana)

Respuesta1

También he añadidolo contrario a PGFCalendarpero podemos usarlo y un poco de matemáticas para obtener el día de inicio y fin correcto de la semana requerida.

Tanto PGFCalendar como mi extensiónTikZ-extno proporciona una interfaz de alto nivel para nada de esto, por lo que tenemos que hacer malabarismos con algunos recuentos, valores y conversiones.

Esto no comprobará si una semana determinada pertenece realmente al año. Podría utilizar \weekinyear{174}{2021}para obtener el mismo resultado que el del código siguiente.

Código

\documentclass{article}
\usepackage{pgfcalendar-ext}
\makeatletter
\newcommand*\weekinyear[2]{% #1 = week, #2 = year
  \pgfcalendardatetojulian{#2-01-01}{\count@}%
  \edef\wiy@first{\the\count@}%
  \pgfcalendarjuliantoweekday{\count@}{\count@}%
  \edef\wiy@day{\the\count@}%
  \pgfcalendarjulianyeartoweek{\wiy@first}{#2}{\count@}%
  \ifnum\count@>1 \count@=0 \fi% first day might be in last week of prev year
  \pgfintset\count@{\wiy@first+(#1-\count@)*7-\wiy@day}%
  \pgfcalendarjuliantodate{\count@}{\wiyStartY}{\wiyStartM}{\wiyStartD}%
  \advance\count@ by 6
  \pgfcalendarjuliantodate{\count@}{\wiyEndY}{\wiyEndM}{\wiyEndD}%
}
\makeatother
\begin{document}
\weekinyear{18}{2024}
Week 18 in year 2024 starts on
Monday \wiyStartY-\wiyStartM-\wiyStartD\ and
ends on Sunday \wiyEndY-\wiyEndM-\wiyEndD.
\end{document}

Producción

La semana 18 del año 2024 comienza el lunes 2024-04-29 y finaliza el domingo 2024-05-05.

información relacionada