Tracks
/
F#
F#
/
Übungen
/
Termine für die Schönheit
Termine für die Schönheit

Termine für die Schönheit

Lernübung

Einführung

Datum und Uhrzeit

Ein DateTime ist in F# ein unveränderliches Objekt, das sowohl Datums- als auch Zeitinformationen enthält. Du bearbeitest DateTime-Instanzen, indem du ihre Methoden aufrufst. Sobald ein DateTime erzeugt wurde, kann sein Wert sich nie mehr ändern. Jede Methode oder Funktion, die ein DateTime zu verändern scheint, gibt tatsächlich ein neues DateTime zurück.

Die textuelle Darstellung von Datum und Uhrzeit hängt von der Kultur ab. Betrachte ein DateTime mit dem Datum 28. März 2019 und der Uhrzeit 14:30:59. Wenn du dieses DateTime mit der Kultur en-US (amerikanisches Englisch) in einen string umwandelst, erhältst du "3/28/19 2:30:59 PM". Bei der Kultur fr-BE (belgisches Französisch) liefert derselbe Code einen anderen Wert: "28/03/19 14:30:59".

Es ist wichtig zu wissen, welche DateTime-Methoden von der Kultur abhängen. Generell gilt: Jede DateTime-Methode, die mit strings arbeitet (egal ob als Eingabe oder Ausgabe), hängt von der aktuellen Kultur ab.

Anleitung

In dieser Übung arbeitest du an einem Terminplaner für einen Schönheitssalon in New York, der am 15. September 2012 eröffnet hat.

Du hast vier Aufgaben, in denen es jedes Mal um Termindaten geht. Die Datums- und Zeitangaben verwenden eines der folgenden drei Formate:

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

Die Tests setzen die Kultur automatisch auf en-US. Du musst die Kultur nicht selbst festlegen oder angeben.

1. Termindatum parsen

Implementiere die Funktion schedule, die eine textuelle Darstellung eines Termindatums in das entsprechende DateTime-Format parst:

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

2. Prüfen, ob ein Termin bereits vorbei ist

Implementiere die Funktion hasPassed, die ein Termindatum entgegennimmt und prüft, ob der Termin irgendwann in der Vergangenheit lag:

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

3. Prüfen, ob der Termin am Nachmittag liegt

Implementiere die Funktion isAfternoonAppointment, die ein Termindatum entgegennimmt und prüft, ob der Termin am Nachmittag liegt (>= 12:00 und < 18:00):

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

4. Uhrzeit und Datum des Termins beschreiben

Implementiere die Funktion description, die ein Termindatum entgegennimmt und eine Beschreibung dieses Datums und dieser Uhrzeit zurückgibt:

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

5. Das Jubiläumsdatum zurückgeben

Implementiere die Funktion anniversaryDate, die das diesjährige Jubiläumsdatum zurückgibt, also den 15. September:

anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
F# Exercism

Bereit, mit Termine für die Schönheit zu starten?

Melde dich bei Exercism an, um F# mit 18 Konzepte148 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.