Entwickler-Ecke
Sonstiges (Delphi) - Schaltjahrberechnung
Alika - Di 21.02.06 22:20
Titel: Schaltjahrberechnung
Hallo an alle! Bin neu hier und weiß nicht recht wo ich hin schreiben sollte.
Wir sollen ein Programm in Delphi programmieren, dass wenn man ein Jahr eingibt es uns sagt ob es ein Schaltjahr ist... Weiß nicht was ich machen soll
HeLP!!
Moderiert von
Gausi: Titel geändert - hier braucht jeder Hilfe.Moderiert von
Gausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 22.02.2006 um 09:24
mkinzler - Di 21.02.06 22:24
Ein Schlatjahr ist durch 4 teilbrar aber nicht durch 100 wenn es nicht durch 1000 teilbar ist also
Delphi-Quelltext
1:
| if (jahr mod 4 = 0) and ((jahr mod 100 <> 0) or ( jahr mod 1000 = 0) then ... |
jasocul - Di 21.02.06 22:29
Mal abgesehen davon, dass das falsch ist, gibt es in Delphi die Funktion IsLeapYear. Einfach mal in der Delphi-Hilfe nachschauen.
@mkinzler:
Schaltjahr:
Wenn es durch vier teilbar ist, dann ist es eins.
Ist es durch 100 teilbar, dann doch nicht.
Falls es dann aber durch 400 teilbar, dann aber doch.
Alika - Di 21.02.06 22:35
Da ich auch Anfänger bei Delphi bin könntet ihr mir bitte den Quelltext geben?
Amateur - Di 21.02.06 22:37
nein können wir nicht... //edit: jasocul (sorry! hatte den thread nur schnell überflogen und gedacht es wäre christian gewesen... war keine absicht) hat dir doch gesagt wie man es berechnet und dass es sogar eine funktion dafür gibt. mehr können wir nun wirklich nicht tun.
jasocul - Di 21.02.06 22:44
Christian??? Ich dachte ich heiße Peter. :wink:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| if IsLeapYear(2006) then begin ShowMessage('Das ist ein Schaltjahr'); end else begin ShowMessage('Da hat der Februar nur 28 Tage'); end; |
Florian.K - Mi 22.02.06 00:31
Ich finde man sollte ein Forum nicht nutzen um Hausaufgaben in Auftrag zu geben. Wenn du Hilfe brauchst 218987911
jasocul - Mi 22.02.06 08:55
@Florian:
Im Prinzip hast du Recht. Daher habe ich auch nur die Funktion aus Delphi genannt. Die Aufgabe soll sicher nicht mit dieser Funktion gelöst werden. Könnte aber zumindest als Kontrolle dienen, ob eine selbstgeschriebene Funktion korrekt ist.
Was geprüft werden muss, wurde weiter oben ja auch genannt. Und dafür gibt es keinen Source.
Gausi - Mi 22.02.06 10:13
Im Gegensatz zur Aussage von oben:
Ein Jahr ist ein Schaltjahr, wenn die Jahreszahl durch 4 teilbar ist.
Wenn die Jahreszahl durch 100 teilbar ist, ist kein Schaltjahr, es sei denn, die Jahreszahl ist durch 400 (nicht 1000) teilbar.
Das Jahr 2000 war also ein Schaltjahr, weil 2000 durch 400 teilbar ist, nicht weil 2000 durch 100 teilbar ist ;-)
jasocul - Mi 22.02.06 10:15
Habe ich was anderes gesagt? :gruebel:
Gausi - Mi 22.02.06 10:23
Oh. Ich meinte Mkinzler, aber das hattest du ja schon richtig gestellt. Ich glaube, ich leg mich noch was hin... :oops:
Delete - Mi 22.02.06 21:01
man kann ja auch die tage weiterzählen... wenn man weiss, wie lang ein jahr ist...
nach dem allgemein anerkannten kalender der westlichen hemisphäre wären dies
wer es nicht glaubt, kanns ja nachrechnen ;-)
AXMD - Mi 22.02.06 21:16
mkinzler hat folgendes geschrieben: |
Ein Schlatjahr ist durch 4 teilbrar aber nicht durch 100 wenn es nicht durch 1000 teilbar ist also
Delphi-Quelltext 1:
| if (jahr mod 4 = 0) and ((jahr mod 100 <> 0) or ( jahr mod 1000 = 0) then ... | |
Das or ist nicht notwendig, eine Zahl, die durch 1000 teilbar ist, ist auch durch 4 teilbar.
AXMD
Blackheart666 - Mi 22.02.06 21:33
Von Papst Gregor XIII. wurde daher 1582 folgende Regelung eingeführt (Gregorianischer Kalender):
Glatt durch 4 teilbare Jahre sind Schaltjahre.
Glatt durch 100 teilbare Jahre sind jedoch keine Schaltjahre.
Glatt durch 400 teilbare Jahre sind aber wieder Schaltjahre.
So sind zum Beispiel die Jahre 1800, 1900 und 2100 keine Schaltjahre, die Jahre 2000 und 2400 hingegen schon. Damit dauert das Gregorianische Jahr 365,2425 Tage, und ist genauer als das Julianische Jahr.
http://www.wissenglobal.de/Schaltjahr.html
Delete - Mi 22.02.06 21:35
jetzt wird der ärmste total verwwwwiiiiirrrrrttttt :twisted:
jasocul - Do 23.02.06 08:54
@AXMD:
Deswegen wird das eine ja auf ungleich und das andere auf gleich geprüft. Mal agesehen davon, dass die 1000 sowieso die falsche Zahl ist. :wink:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!