Como posso obter a data ISO para a segunda-feira de uma semana específica? Por exemplo, a segunda-feira da 32ª semana de 2021?
Eu sei que, se eu correr date -dmonday +%Y%m%d
, obterei a data de segunda-feira da semana atual. Como posso passar as variáveis 2021
e 32
e obter a data da segunda-feira dessa semana?
Isso parece funcionar corretamente.
Testado com
onde
date.sh
está o script acima.A Wikipedia tem um artigo sobre as datas da semana ISO A "primeira semana" é definida como aquela que contém a primeira quinta-feira. O artigo afirma que isso é equivalente a 4 de janeiro é sempre na semana 1. A data GNU permite que você forneça datas como
date -d "Jan 4 2021 +3 weeks"
as que você obterá uma data na 4ª semana, geralmente não em uma segunda-feira.Usando date, podemos encontrar o dia da semana e usá-lo para ajustar a data a ser solicitada.
Portanto, para 2021, isso mostra que a segunda-feira da semana 1 foi 2021-01-04 e, para 2020, foi 2019-12-30 (ou seja, no final do ano anterior)
Isso funciona pelo menos de 2000 a 2025:
O
LC_ALL=C
prefixo eliminalocale
influências.