Encontre a Data mais próxima de uma TargetDate para um determinado dia da semana.
Por exemplo, com uma data 20161219
e um dia da semana de Friday (6)
, a resposta é 20161216
.
Outro exemplo, dada a data 20161219
e o dia da semana de Wednesday (4)
, a resposta é 20161221
.
Um exemplo final, dada a data 20161219
e o dia da semana de Monday (2)
, a resposta é 20161219
.
Regras:
- O formato da data para entrada e saída deve corresponder. Nos exemplos, usei
yyyymmdd
, mas você pode usar qualquer formato, desde que o ano (pelo menos dois dígitos), o mês e o dia do mês sejam "legíveis por humanos". - O dia da semana é inserido como um número inteiro. No meu exemplo, domingo é o primeiro dia da semana, portanto, é o número do dia da semana
1
. Você pode ter qualquer numeração do dia da semana, contanto que ela seja diferente do exemplo. - Os anos de 1970 a 2030 devem ser acomodados.
- Ferramentas e bibliotecas comuns para a data do idioma são permitidas, mas o crédito de rua é concedido àqueles que optam por não usá-los.
- Menor número de bytes ganhos.