Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 1 von 1 Treffern
Autor Beitrag
Thema: Haskell Funktion in Funktion
Bronia030

Antworten: 0
Hits: 2.279
Haskell Funktion in Funktion 24.07.2018 20:36 Forum: Praktische Informatik


Meine Frage:
Hallo liebe Informatik Freunde... Ich beschäftige mich grade mit folgender Aufgabe

Gegeben sei die Typdefinition type Datum = (Int, Int, Int) wobei die drei Einträge das Jahr, der Monat und der
Tag sind. Das Abgabedatum wird also wie folgt dargestellt: (2018, 7, 26).
Es soll die Funktion tagesDifferenz d1 d2 implementiert werden, welche zwei Daten übergeben bekommt und
die Differenz zwischen ihnen in Tagen zurückgeben soll.
Implementieren Sie dafür zunächst die Funktion datumZuTagen d welche aus einem übergebenem Datum die Anzahl
an Tagen seit dem 1. Januar im Jahre 1 bestimmt. Gehen Sie zur Vereinfachung davon aus, dass jedes Jahr 365 Tage
hat und definieren Sie sich, wenn nötig, geeignete Hilfsfunktionen.
Verwenden Sie folgende Kontrollwerte um zu prüfen, ob ihre Implementierung korrekt ist:
datumZuTagen (1, 1, 1) == 1
datumZuTagen (2018, 7, 26) == 736412


Die DatumZuTag Funktion funktioniert bereits ganz gut und alles läuft, jetzt weiß ich nicht wirklich aber, wie ich diese Funktion in die andere mit einbide...

Meine Ideen:
ype Date = (Int, Int, Int)


tagesdifferenz :: Date -> Int
tagesdifferenz (year, month, day) (year2, month2, day2) = datetoday(year, month, day) - datetoday(year2, month2, day2)



datetoday :: Date -> Int
datetoday (year, month , day) = day + monthtoday month + yeartoday year


yeartoday :: Int -> Int
yeartoday year = ((year-1)*365)

--12 Guards benutzen...?
monthtoday :: Int -> Int
monthtoday month
|month == 1 = 0
|month == 2 = 31
|month == 3 = 59
|month == 4 = 90
|month == 5 = 120
|month == 6 = 151
|month == 7 = 181
|month == 8 = 211
|month == 9 = 243
|month == 10 = 273
|month == 11 = 304
|month == 12 = 334
Zeige Beiträge 1 bis 1 von 1 Treffern