O dia da semana e o mês do ano parecem receber muita atenção, mas ninguém parece se importar com a semana do ano. Acredito que é hora de mudar isso, portanto, seu trabalho é escrever um programa ou função que, quando determinada data, gera um número inteiro entre 1 e 53, correspondente à semana atual do ano.
Para os propósitos deste desafio, diremos que o primeiro domingo do ano marca o início do ano; portanto, o único caso em que 1º de janeiro é considerado a semana 1 é quando cai em um domingo.
- A entrada pode ser qualquer formato de data que não inclua explicitamente o número da semana (basta especificar o formato na sua resposta) para datas entre
1JAN1900
e31DEC2100
. - A saída é um número inteiro entre 1 e 53
- Você pode usar qualquer método padrão para fornecer entrada / saída.
Casos de teste
17MAY2017 -> 20
3JAN2013 -> 53
1JAN2017 -> 1
17MAY1901 -> 19
31DEC2100 -> 52
7JUL2015 -> 27
- Isso é código-golfe, portanto todas as regras padrão de golfe se aplicam e o código mais curto (em bytes) vence.
07/07/2015
)? Pode 7JUL2015
ser 07JUL2015
?
7/7/2015
, 2015-07-07
também são válidos.
%U
: Como aponta o @J_Lard, é preciso ter cuidado se a semana 0 é a semana 52 ou 53 do ano anterior. É a semana 53 em 2001, 2007, 2013, 2018, 2024, 2029 e se repete em um ciclo de 28 anos. Outros anos é a semana 52.