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

Informatiker Board » Themengebiete » Praktische Informatik » Haskell Funktion in Funktion » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Der letzte Beitrag
Bronia030 Haskell Funktion in Funktion

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