Track
/
F#
F#
/
Esercizi
/
Prenotazioni per la bellezza
Prenotazioni per la bellezza

Prenotazioni per la bellezza

Esercizio di apprendimento

Introduzione

Le date e gli orari

Un DateTime in F# è un oggetto immutabile che contiene informazioni sia sulla data che sull'ora. Le istanze di DateTime si manipolano chiamando i loro metodi. Una volta che un DateTime è stato creato, il suo valore non può più cambiare. Qualsiasi metodo/funzione che sembra modificare un DateTime in realtà restituisce un nuovo DateTime.

La rappresentazione testuale di date e orari dipende dalla cultura. Prendi un DateTime con la data impostata al 28 marzo 2019 e l'ora impostata a 14:30:59. Convertendo questo DateTime in una string quando si usa la cultura en-US (inglese americano) si ottiene "3/28/19 2:30:59 PM". Usando la cultura fr-BE (francese belga), lo stesso codice restituisce un valore diverso: "28/03/19 14:30:59".

È importante sapere quali metodi di DateTime dipendono dalla cultura. In generale, qualsiasi metodo di DateTime che ha a che fare con le string (come input o output) dipenderà dalla cultura corrente.

Istruzioni

In questo esercizio lavorerai a un pianificatore di appuntamenti per un salone di bellezza a New York, aperto il 15 settembre 2012.

Ci sono cinque compiti, che riguardano tutti le date degli appuntamenti. Le date e gli orari useranno uno dei tre formati seguenti:

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

I test imposteranno automaticamente la cultura su en-US: non devi impostarla né specificarla da solo.

1. Analizzare la data di un appuntamento

Implementa la funzione schedule, che sa analizzare una rappresentazione testuale di una data di appuntamento nel formato DateTime corrispondente:

schedule "7/25/2019 13:45:00"
// => DateTime(2019, 7, 25, 13, 45, 0)

2. Controllare se un appuntamento è già passato

Implementa la funzione hasPassed, che prende una data di appuntamento e controlla se l'appuntamento è nel passato:

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

3. Controllare se un appuntamento è nel pomeriggio

Implementa la funzione isAfternoonAppointment, che prende una data di appuntamento e controlla se l'appuntamento è nel pomeriggio (>= 12:00 e < 18:00):

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

4. Descrivere l'ora e la data dell'appuntamento

Implementa la funzione description, che prende una data di appuntamento e restituisce una descrizione di quella data e di quell'ora:

description (DateTime(2019, 03, 29, 15, 0, 0))
// => "You have an appointment on 3/29/2019 3:00:00 PM."

5. Restituire la data dell'anniversario

Implementa la funzione anniversaryDate, che restituisce la data dell'anniversario di quest'anno, cioè il 15 settembre:

anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
F# Exercism

Vuoi iniziare Prenotazioni per la bellezza?

Iscriviti a Exercism per imparare e padroneggiare F# con 18 concetti148 esercizi e il mentoring di persone reali, tutto gratis.