Datumsarithmetik

juan_

juan_

König
Hallo,
folgenden Artikel hab ich gefunden, und bis zu dem Punkt "Probe aufs Exempel" gelesen und versucht das ganze mit Ruby umzusetzen.
Hier mein Ergebnis. Fehlen tut noch die Bedingung, dass bei einem Schaltjahr ein Tag im Januar/Februar abgezogen wird.

Code:
########################################
#       Tag - Wochentag Rechner        #
########################################

print "Datum eingeben (dd.mm.yyyy): "
date = gets

#zerlegt Datum in Einzelteile : $1(dd), $2(mm), $3(yy) und $4(yy)
date =~ /(\d+).(\d+).(\d\d)(\d+)/

#Jahr durch Tag, modulo 7
jahr =  ($4.to_i / $1.to_i) % 7.to_i



#Hashes mit Monaten, Jahren, Tagen
monatsliste = {
"01" => 0,
"02" => 3,
"03" => 3,
"04" => 6,
"05" => 1,
"06" => 4,
"07" => 6,
"08" => 2,
"09" => 5,
"10" => 0,
"11" => 3,
"12" => 5
}

jahreswerte = {
"17" => 4,
"18" => 2,
"19" => 0,
"20" => 6,
"21" => 4,
"22" => 1,
"23" => 0
}


wochentagswerte = {
0 => "Sonntag",
1 => "Montag",
2 => "Dienstag",
3 => "Mittwoch",
4 => "Donnerstag",
5 => "Freitag",
6 => "Samstag"
}

#Addition der 4 Werte, modulo 7
tag = (jahr + monatsliste [$2].to_i + $1.to_i + jahreswerte [$3].to_i) % 7

puts "Der #{date} war ein #{wochentagswerte [tag]}!"

Falls noch jmd grade eine Sprache lernt und sich versuchen möchte, oder mir Tipps geben will, bitte bitte. Ich bin gespannt ;)
Das mit dem Schaltjahr werd ich nachtragen, muss nur noch hinter die Logik kommen, das Umsetzen wird - denke ich - nicht das Problem.
Bitte auch nur bis zum Punkt "Probe aufs Exempel" lesen, denn ab da beginnt die Lösung. Ich werde sie auch erst lesen, wenn sich hier niemand mehr meldet =)

adieu


//Edit: achso, eine Abfrage, ob das Datum das richtige Format hat, kommt auch noch
 
Zuletzt bearbeitet:

Ähnliche Themen

Raspberry Pi 5: Kleinst-PC nutzt „Chiplet-Design“ mit eigenem I/O-Controller

Linux Kernel 6.3: Spectre erhält effizientere Patches und Zen 4 mehr Leistung

Linux-Distribution für Spieler: Nitrux 2.6.0 mit Linux 6.1 und KDE Plasma 5.26.4 erschienen

Unity 7.7 und UnityX 7.7: Desktop-Refresh für Ubuntu 23.04 kommt in zwei Varianten

Raspberry Pi als Spielkonsole: Lakka 4.3 mit RetroArch für Mini-Retro-PCs erschienen

Zurück
Oben