Un pequeño favor

Published by Matt in

Mi amigo necesitaba ayuda con una tarea de la escuela y pensé que sería una buena adición para incluir también como desafío aquí.

Crea una función que reciba una oración y devuelva una oración modificada de acuerdo con estas reglas:

  • Si encuentras una fecha dentro de la oración, con el formato DD/MM/YY o DD.MM.YY, debes cambiarla a DD/MM/YYYY o DD.MM.YYYY (con el mismo carácter separador).
  • Si encuentras una fecha dentro de la oración, con el formato MonthName, DD. YY., debes cambiarla a MonthName, DD. YYYY.
  • Si encuentras un MonthName no válido, déjalo tal como está.
  • Para este desafío existe una regla arbitraria: si YY es menor que 25, el prefijo del año será 20; de lo contrario, el prefijo del año será 19.
  • Es decir, 08/11/20 -> 08/11/2020 o 02/11/95 -> 02/11/1995

Ejemplos

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

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

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

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

smallFavor("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."

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

Notas

No olvides aplicar la regla arbitraria del prefijo del año definida anteriormente.

  • 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 no válido, significa que permanece sin cambios)