Halli Hallo,
ich hab hier mal was programmiert (ich weiß das gibt es fertig, war nur zum Spaß
),
und jetzt ist iwo nen klitze-kleiner Fehler drin aber er will von mir derzeit nicht
gefunden werden.... ist bestimmt iwas ganz leichtes offensichtliches aber ich steh seid
ein paar Stunden auf dem Schlauch
Ich habe hier erst einmal so meine Millisekunden, Sekunden, Minuten, Stunden und Tage
berrechnet:
Und dann wollte ich mit setYearMonthDay((int)temp); meine
restlichen Daten ermitteln (tage, monate, jahre)
Die setYearMonthDay Methode sieht wie folgt aus:
Die Konstante JANUARY ist natürlich 1. Das Datum im allgemeinen meines Wissens
nach der Tag, seit dem die Millisekunden gezählt werden (?!).
MAXMONTHSOFYEAR ist natürlich 12.
(btw. fällt jemanden hierzu ein besseren Methoden-Namen ein?
)
Die Methode getDaysOfMonth() sieht so aus:
Die Konstanten brauche ich denke ich nicht weiter erläutern
Und zu guter letzt die isLeapYear():
Für das heutige Datum müsste demnach ja 20.03.2012 rauskommen.
Es kommt allerdings der 17.01.2012 raus, also stimmt da iwo was nicht
aber ich komm einfach nicht drauf.
Hat jemand eventuell einen Tipp für mich?
ich hab hier mal was programmiert (ich weiß das gibt es fertig, war nur zum Spaß
und jetzt ist iwo nen klitze-kleiner Fehler drin aber er will von mir derzeit nicht
gefunden werden.... ist bestimmt iwas ganz leichtes offensichtliches aber ich steh seid
ein paar Stunden auf dem Schlauch
Ich habe hier erst einmal so meine Millisekunden, Sekunden, Minuten, Stunden und Tage
berrechnet:
Java:
time = System.currentTimeMillis();
long temp = time;
this.setMilliSecond((int)(temp % 1000));
temp /= 1000;
this.setSecond((int)(temp % 60));
temp /= 60;
this.setMinute((int)(temp % 60));
temp /= 60;
this.setHour((int)(temp % 24));
temp /= 24;
setYearMonthDay((int)temp);
Und dann wollte ich mit setYearMonthDay((int)temp); meine
restlichen Daten ermitteln (tage, monate, jahre)
Die setYearMonthDay Methode sieht wie folgt aus:
Java:
private void setYearMonthDay(int days) {
int tempYear = 1970;
int tempMonth = JANUARY;
int tempDay = 1;
int allDays = days;
System.out.println(allDays);
for(int i = 0; i < allDays; i++) {
tempDay++;
if(tempDay > getDaysOfMonth(tempMonth)) {
tempMonth++;
tempDay = 1;
}
if(tempMonth > MAXMONTHSOFYEAR) {
tempYear++;
tempMonth = 1;
}
}
this.setYear(tempYear);
this.setMonth(tempMonth);
this.setDay(tempDay);
}
Die Konstante JANUARY ist natürlich 1. Das Datum im allgemeinen meines Wissens
nach der Tag, seit dem die Millisekunden gezählt werden (?!).
MAXMONTHSOFYEAR ist natürlich 12.
(btw. fällt jemanden hierzu ein besseren Methoden-Namen ein?
Die Methode getDaysOfMonth() sieht so aus:
Java:
public int getDaysOfMonth(int month) {
if(month == JANUARY) {
return 31;
} else if(month == FEBRUARY) {
if(isLeapYear(year)) {
return 29;
} else {
return 28;
}
} else if(month == MARCH) {
return 31;
} else if(month == APRIL) {
return 30;
} else if(month == MAY) {
return 31;
} else if(month == JUNE) {
return 30;
} else if(month == JULY) {
return 31;
} else if(month == AUGUST) {
return 31;
} else if(month == SEPTEMBER) {
return 30;
} else if(month == OCTOBER) {
return 31;
} else if(month == NOVEMBER) {
return 30;
} else if(month == DECEMBER) {
return 31;
} else {
return -1;
}
}
Die Konstanten brauche ich denke ich nicht weiter erläutern
Und zu guter letzt die isLeapYear():
Java:
public boolean isLeapYear(int year) {
if(year%4 == 0) {
if(year%100 == 0) {
if(year%400 == 0) {
return true;
} else {
return false;
}
}
return true;
}
return false;
}
Für das heutige Datum müsste demnach ja 20.03.2012 rauskommen.
Es kommt allerdings der 17.01.2012 raus, also stimmt da iwo was nicht
aber ich komm einfach nicht drauf.
Hat jemand eventuell einen Tipp für mich?