Az F#-ban a DateTime egy megváltoztathatatlan objektum, amely egyszerre tartalmazza a dátum és az idő adatait. A DateTime példányokat a metódusaik meghívásával kezeljük. Miután létrehoztunk egy DateTime-ot, az értéke soha nem változhat meg. Minden metódus vagy függvény, amely úgy tűnik, hogy módosítja a DateTime-ot, valójában egy új DateTime-ot ad vissza.
A dátumok és időpontok szöveges megjelenítése a kultúrától függ. Vegyünk egy DateTime-ot, amelynek dátuma 2019. március 28., az időpontja pedig 14:30:59. Ha ezt a DateTime-ot az en-US kultúrával (amerikai angol) alakítjuk string-gé, akkor "3/28/19 2:30:59 PM" lesz az eredmény. A fr-BE kultúrával (belga francia) ugyanez a kód más értéket ad vissza: "28/03/19 14:30:59".
Fontos megérteni, hogy mely DateTime metódusok függenek a kultúrától. Általánosságban minden olyan DateTime metódus, amely string-ekkel foglalkozik (akár bemenetként, akár kimenetként), az aktuális kultúrától függ.
Ebben a feladatban egy New York-i szépségszalon időpont-ütemezőjén fogsz dolgozni, amely 2012. szeptember 15-én nyílt meg.
Négy részfeladatod lesz, és mindegyik időpontok dátumával foglalkozik. A dátumok és az időpontok az alábbi három formátum egyikét használják:
"7/25/2019 13:45:00""July 25, 2019 13:45:00""Thursday, July 25, 2019 13:45:00:00"A tesztek automatikusan beállítják a culture értékét en-US-ra. Neked magadnak nem kell beállítanod vagy megadnod a culture-t.
Valósítsd meg a schedule függvényt, amely egy időpont dátumának szöveges ábrázolását a megfelelő DateTime formátumba olvassa be:
schedule "7/25/2019 13:45:00"
// => DateTime(2019, 7, 25, 13, 45, 0)
Valósítsd meg a hasPassed függvényt, amely egy időpont dátumát kapja, és ellenőrzi, hogy az időpont valamikor a múltban volt-e:
hasPassed (DateTime(1999, 12, 31, 9, 0, 0))
// => true
Valósítsd meg az isAfternoonAppointment függvényt, amely egy időpont dátumát kapja, és ellenőrzi, hogy az időpont délutánra esik-e (>= 12:00 és < 18:00):
isAfternoonAppointment (DateTime(2019, 03, 29, 15, 0, 0))
// => true
Valósítsd meg a description függvényt, amely egy időpont dátumát kapja, és visszaadja az adott dátum és időpont leírását:
description (DateTime(2019, 03, 29, 15, 0, 0))
// => "You have an appointment on 3/29/2019 3:00:00 PM."
Valósítsd meg az anniversaryDate függvényt, amely az idei évforduló dátumát adja vissza, ami szeptember 15-e:
anniversaryDate()
// => DateTime(2019, 9, 15, 0, 0, 0)
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) F# nyelvet 18 fogalom148 feladat segítségével, valódi emberi mentorálással, mindez ingyen.