Διαδρομές
/
F#
F#
/
Ασκήσεις
/
Ραντεβού για ομορφιά
Ραντεβού για ομορφιά

Ραντεβού για ομορφιά

Άσκηση εκμάθησης

Εισαγωγή

Ημερομηνίες και ώρες

Ένα DateTime στη F# είναι ένα αμετάβλητο αντικείμενο που περιέχει πληροφορίες τόσο για την ημερομηνία όσο και για την ώρα. Χειρίζεσαι τα στιγμιότυπα DateTime καλώντας τις μεθόδους τους. Μόλις δημιουργηθεί ένα DateTime, η τιμή του δεν μπορεί να αλλάξει ποτέ. Οποιαδήποτε μέθοδος ή συνάρτηση φαίνεται να τροποποιεί ένα DateTime στην πραγματικότητα επιστρέφει ένα νέο DateTime.

Η κειμενική αναπαράσταση των ημερομηνιών και των ωρών εξαρτάται από την κουλτούρα. Σκέψου ένα DateTime με ημερομηνία 28 Μαρτίου 2019 και ώρα 14:30:59. Αν μετατρέψεις αυτό το DateTime σε string χρησιμοποιώντας την κουλτούρα en-US (αμερικανικά αγγλικά), παίρνεις "3/28/19 2:30:59 PM". Με την κουλτούρα fr-BE (βελγικά γαλλικά), ο ίδιος κώδικας επιστρέφει διαφορετική τιμή: "28/03/19 14:30:59".

Είναι σημαντικό να καταλάβεις ποιες μέθοδοι του DateTime εξαρτώνται από την κουλτούρα. Γενικά, οποιαδήποτε μέθοδος του DateTime που έχει να κάνει με strings (είτε ως είσοδο είτε ως έξοδο) θα εξαρτάται από την τρέχουσα κουλτούρα.

Οδηγίες

Σε αυτή την άσκηση θα δουλέψεις πάνω σε μια εφαρμογή προγραμματισμού ραντεβού για ένα σαλόνι ομορφιάς στη Νέα Υόρκη, που άνοιξε στις 15 Σεπτεμβρίου του 2012.

Έχεις τέσσερις εργασίες, οι οποίες όλες θα έχουν να κάνουν με ημερομηνίες ραντεβού. Οι ημερομηνίες και οι ώρες θα χρησιμοποιούν μία από τις παρακάτω τρεις μορφές:

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

Οι δοκιμές θα ορίσουν αυτόματα το culture σε en-US, δεν χρειάζεται να ορίσεις ή να προσδιορίσεις εσύ το culture.

1. Ανάλυσε την ημερομηνία του ραντεβού

Υλοποίησε τη συνάρτηση schedule που μπορεί να αναλύσει μια κειμενική αναπαράσταση μιας ημερομηνίας ραντεβού στην αντίστοιχη μορφή DateTime:

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

2. Έλεγξε αν ένα ραντεβού έχει ήδη περάσει

Υλοποίησε τη συνάρτηση hasPassed που δέχεται μια ημερομηνία ραντεβού και ελέγχει αν το ραντεβού ήταν κάπου στο παρελθόν:

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

3. Έλεγξε αν το ραντεβού είναι το απόγευμα

Υλοποίησε τη συνάρτηση isAfternoonAppointment που δέχεται μια ημερομηνία ραντεβού και ελέγχει αν το ραντεβού είναι το απόγευμα (>= 12:00 και < 18:00):

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

4. Περιγράψε την ώρα και την ημερομηνία του ραντεβού

Υλοποίησε τη συνάρτηση description που δέχεται μια ημερομηνία ραντεβού και επιστρέφει μια περιγραφή αυτής της ημερομηνίας και ώρας:

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

5. Επίστρεψε την ημερομηνία της επετείου

Υλοποίησε τη συνάρτηση anniversaryDate που επιστρέφει την ημερομηνία της φετινής επετείου, η οποία είναι η 15η Σεπτεμβρίου:

anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
F# Exercism

Έτοιμος να ξεκινήσεις την άσκηση Ραντεβού για ομορφιά;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις F# με 18 έννοιες148 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.