Datumsfunktion

Steffi1991

Mitglied
hallo :)

ich komm bei folgender aufgabe (schreiben von Datumsfunktionen) nicht weiter :
Schreiben sie in der Klasse Date eine Methode mit der Signatur:
private int daySince1900(),

die die Tage des jeweiligen Datum-Objektes seit dem 01.01.1900 als Ganzzahlwert liefert. Gehen sie dabei für die Implementierung davon aus , dass jeder Monat genau 30 Tage besitzt und dass es keine Schaltjahre gibt.

Also ich nehm mal an ich schreib jetzt meine Methode die so aussieht :

private int daySince1900(){
return;

}
Nur was soll ich denn jetzt in den return teil schreiben. Die aufgabe ist sicher ganz leicht nur iwie komm ich gerade nicht dahinter .Danke schonmal im vorraus.

liebe grüße
 

Final_Striker

Top Contributor
Die Methode gehört doch sicher zu einer Klasse und diese hat bestimmt auch Attribute wie jahr, monat, tag. Mit diesen rechnest du die Differenz zu dem Datum von 01.01.1900 aus.
 

Landei

Top Contributor
Wenn das aktuelle Datum d.m.j ist, wieviele Tage, Monte und Jahre sind dann seit dem 1.1.1900 vergangen? d-1 Tage, m-1 Monate und j-1900 Jahre. Nun hat ein Monat 30 Tage (nach Aufgabenstellung) und ein Jahr 12 Monate. Nun sage nicht, das bekommst du nicht ausgerechnet...
 

Steffi1991

Mitglied
private int daySince1900(){
return this.tag-30, this.monat-12 , this.jahr-1900;


}
So dann würde das ganze ja so aussehen . Das hab ich verstanden , aber iwas ist da noch bei meiner syntax falsch .
 

XHelp

Top Contributor
Was denkst du, was da zurückgegeben wird?
Du musst eine Zahl zurückgeben, nämlich Anzahl der Tage.
Außerdem stimmt die Berechnung in keinster Weise. Was soll denn -30 und -12 bewirken?
 

Steffi1991

Mitglied
ups sorry ich glaub ich habs jetzt verstanden stan voll auf dem schlauch :D .

private int daysSince1900() {
return ((this.jahr - 1900) * 360 + this.monat * 30 + this.tag);

}

geht das so ?
 

Final_Striker

Top Contributor
Die Methode liefert Tage zurück. Mit this.jahr-1900 berechnest aber die Jahre seit 1900. D.h. du musst die berechneten Jahre noch in Tage umrechnen.

Edit:

Du musst die Monate und Tagen natürlich auch noch berechnen.
 
Zuletzt bearbeitet:

Final_Striker

Top Contributor
Und was ist z.b mit dem 01.02.1900.

Mit deiner Berechnung wäre seit dem 01.01.1900 60 Tage vergangen, was aber falsch ist.

Du berechnest zwar Jahre aber was ist mir Monaten und Tagen???
 

Final_Striker

Top Contributor
Jetzt mal im ernst. Nimmt dir ein Blatt Papier und rechen händisch aus, wie viele Tage seit 01.01.1900 bis heute 21.11.2010 vergangen sind. Wenn du dann auf 40470 gekommen bist, dann überlegst du dir wie du deine Rechnung in Java nachbildest.
 

XHelp

Top Contributor
Habe mich bei der 1 vertippt, eigentlich müssten es 39920 sein;
110 Jahre, 10 Monate und 20 Tage
wären dann: 39600 + 300 + 20 = 39920 Tage
Gegenfrage: wie hast du denn gerechnet?
 

Neue Themen


Oben