Tracks
/
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. 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.

Instrucciones

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

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

1. Interpretar la fecha de la cita

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)

2. Verificar si una cita ya pasó

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

3. Verificar si la cita es por la tarde

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

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 del aniversario

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)
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
F# Exercism

¿Todo 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.