Rutas
/
F#
F#
/
Ejercicios
/
Reservas para el salón de belleza
Reservas para el salón de belleza

Reservas para el salón de belleza

Ejercicio de aprendizaje

Introducción

Fechas y horas

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. Pensemos en un DateTime cuya fecha sea el 28 de marzo de 2019 y cuya hora sea las 14:30:59. Convertir este DateTime a string cuando se usa la cultura en-US (inglés estadounidense) devuelve "3/28/19 2:30:59 PM". Al usar la cultura fr-BE (francés belga), el mismo código devuelve un valor distinto: "28/03/19 14:30:59".

Es importante saber qué métodos de DateTime dependen de la cultura. En general, cualquier método de DateTime que trabaje con strings (ya sea como entrada o como salida) dependerá de la cultura actual.

Instrucciones

En este ejercicio vas a trabajar en un planificador de citas para un salón de belleza de Nueva York que abrió el 15 de septiembre de 2012.

Tienes cuatro tareas, y todas ellas girarán en torno a fechas de citas. Las fechas y las horas usarán uno de los tres formatos siguientes:

  • "7/25/2019 13:45:00"
  • "July 25, 2019 13:45:00"
  • "Thursday, July 25, 2019 13:45:00:00"
Caution

Los tests establecerán automáticamente la cultura como en-US; no tienes que establecer ni especificar la cultura tú mismo.

1. Analizar la fecha de la cita

Implementa la función schedule, que puede analizar 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)

2. Comprobar si una cita ya ha pasado

Implementa la función hasPassed, que recibe la fecha de una cita y comprueba si la cita quedó en algún momento del pasado:

hasPassed (DateTime(1999, 12, 31, 9, 0, 0))
// => true

3. Comprobar si la cita es por la tarde

Implementa la función isAfternoonAppointment, que recibe la fecha de una cita y comprueba si la cita es por la tarde (>= 12:00 y < 18:00):

isAfternoonAppointment (DateTime(2019, 03, 29, 15, 0, 0))
// => true

4. Describir la hora y la fecha de la cita

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

5. Devolver la fecha de aniversario

Implementa la función anniversaryDate, que devuelve la fecha de aniversario de este año, que es el 15 de septiembre:

anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
F# Exercism

¿Listo para empezar Reservas para el salón de belleza?

Regístrate en Exercism para aprender y dominar F# con 18 conceptos148 ejercicios y mentoría humana real, todo gratis.