Un DateTime en F# es un objeto inmutable que contiene información tanto de fecha como de hora. Las instancias de DateTime se manipulan llamando a sus métodos. Una vez que se ha construido un DateTime, su valor nunca puede cambiar. Cualquier método o función que parezca modificar un DateTime en realidad devolverá un nuevo DateTime.
La representación textual de las fechas y las horas depende de la cultura. Considera un DateTime con su fecha establecida en el 28 de marzo de 2019 y su hora en 14:30:59. Convertir este DateTime a un string cuando se usa la cultura en-US (inglés estadounidense) devuelve "3/28/19 2:30:59 PM". Cuando se usa la cultura fr-BE (francés belga), el mismo código devuelve un valor diferente: "28/03/19 14:30:59".
Es importante saber cuáles métodos de DateTime dependen de la cultura. En general, cualquier método de DateTime que trate con strings (ya sea como entrada o como salida) dependerá de la cultura actual.
En este ejercicio vas a trabajar en un sistema de citas para un salón de belleza en Nueva York que abrió el 15 de septiembre de 2012.
Tienes cuatro tareas, y todas girarán en torno a las fechas de las citas. Las fechas y horas usarán uno de los siguientes tres formatos:
"7/25/2019 13:45:00""July 25, 2019 13:45:00""Thursday, July 25, 2019 13:45:00:00"Las pruebas establecerán automáticamente la cultura en en-US; no tienes que establecer ni especificar la cultura tú mismo.
Implementa la función schedule, que puede interpretar una representación textual de la fecha de una cita y convertirla al formato DateTime correspondiente:
schedule "7/25/2019 13:45:00"
// => DateTime(2019, 7, 25, 13, 45, 0)
Implementa la función hasPassed, que recibe la fecha de una cita y verifica si la cita quedó en algún momento del pasado:
hasPassed (DateTime(1999, 12, 31, 9, 0, 0))
// => true
Implementa la función isAfternoonAppointment, que recibe la fecha de una cita y verifica si la cita es por la tarde (>= 12:00 y < 18:00):
isAfternoonAppointment (DateTime(2019, 03, 29, 15, 0, 0))
// => true
Implementa la función description, que recibe la fecha de una cita y devuelve una descripción de esa fecha y hora:
description (DateTime(2019, 03, 29, 15, 0, 0))
// => "You have an appointment on 3/29/2019 3:00:00 PM."
Implementa la función anniversaryDate, que devuelve la fecha del aniversario de este año, que es el 15 de septiembre:
anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Regístrate en Exercism para aprender y dominar F# con 18 conceptos148 ejercicios y mentoría humana real, todo gratis.