Um pequeno favor

Published by Matt in

Meu amigo precisava de ajuda com uma tarefa da escola, e achei que seria uma boa adição para incluir também como desafio aqui.

Crie uma função que receba uma frase e retorne uma frase modificada de acordo com estas regras:

  • Se você encontrar uma data na frase, no formato DD/MM/YY ou DD.MM.YY, deverá alterá-la para DD/MM/YYYY ou DD.MM.YYYY (com o mesmo caractere separador).
  • Se você encontrar uma data na frase, no formato MonthName, DD. YY., deverá alterá-la para MonthName, DD. YYYY.
  • Se você encontrar um MonthName inválido, deixe-o como está.
  • Para este desafio, existe uma regra arbitrária: se YY for menor que 25, o prefixo do ano será 20; caso contrário, o prefixo do ano será 19.
  • Ou seja, 08/11/20 -> 08/11/2020 ou 02/11/95 -> 02/11/1995

Exemplos

small_favor("I was born on 11/02/98")
➞ "I was born on 11/02/1998"

small_favor("I was born on 11/02/98 and what about you?")
➞ "I was born on 11/02/1998 and what about you?"

small_favor("I was born on 02.11.19")
➞ "I was born on 02.11.2019"

small_favor("I was born on February, 02. 98.")
➞ "I was born on February, 02. 1998."

small_favor("I was born on January, 01. 15. and today is October, 08. 20.")
➞ "I was born on January, 01. 2015. and today is October, 08. 2020."

small_favor("I was born on Fakemonthy, 01. 15. dont change invalid dates")
➞ "I was born on Fakemonthy, 01. 15. dont change invalid dates"

Observações

Não se esqueça de aplicar a regra arbitrária do prefixo do ano definida acima.

  • DD/MM/YY -> DD/MM/YYYY
  • DD.MM.YY -> DD.MM.YYYY
  • Month, DD. YY. -> Month, DD. YYYY.
  • DD|MM|YY -> DD|MM|YY (separador inválido, significa que permanece inalterado)