PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit java.util.Calendar



SickSoul
01-03-2005, 22:12
Wahrscheinlich ist das eine ziemlich dumme Frage, aber ich wüsste gerne wie ich es schaffe mit einer gegebenen Zeit die mir in Sekunden vorliegt (zB 12 sec., 97 sec., usw.) eine Ausgabe in dieser Art zu schreiben: HH/MM/SS (zB 01/03/12)

Danke im Vorhinein für jede Antwort

:confused:SickSoul

mwanaheri
02-03-2005, 01:40
Gar keine blöde Frage.
Calendar.HOUR, Calendar.MINUTE und Calendar.SECOND sollten dir die Werte liefern, z.B. mit
public void auslesen(GregorianCalendar kal){
System.out.print(kal.get(Calendar.HOUR));
...
}
allerdings hast du dann noch das Problem, dass du Integerwerte zurückkriegst.
Also musst du daraus erst einen String machen, abprüfen, ob er länger als 1 ist und gegebenenfalls noch eine "0" davorsetzen.

Am einfachsten, wenn auch etwas grob, geht das so:

String tmp,ergebnis;
tmp = "" + kal.get(Calendar.HOUR);
if (tmp.length < 2) tmp = "0" + tmp;
ergebnis = tmp + ":";
tmp = "" + kal.get(Calendar.MINUTE);
if (tmp.length < 2) tmp = "0" + tmp;
ergebnis = ergebnis + tmp + ":";
...

Anmerkung:
1. Der Code ist nur schnell ausgedacht und nicht geprüft, weil ich das hier mangels Entwicklungswerkzeugen nicht testen kann. Das Prinzip sollte aber klar werden.
2. So mit Strings zu arbeiten ist eigentlich schlechter Stil. Wenn du das öfters mal brauchst, nimm auf jeden Fall (mindestens für ergebnis) einen StringBuffer, sonst verschwendest du Speicher und Performance.

ups, ich hätte früher schlafen gehen sollen. Das ging ja voll am Problem vorbei.

Also noch mal: Dividiere die Sekunden durch 60, dann hast du die Minuten. Achte darauf, dass du nur Integer verwendest. Der Modulo-Operator liefert dir dann den Rest der Teilung bei Ganzzahlen.
minuten = sekunden / 60;
sekunden = sekunden % 60; // Modulo-Operator. Liefert den "Rest" einer Division
stunden = minuten / 60;
minuten = minuten % 60;

Zusammensetzen wie oben.

kit
02-03-2005, 08:49
Dafür gibt es die Klassen DateFormater bzw. SimpleDateFormater. Nomen est omen.

Viele Grüße
kit

peschmae
02-03-2005, 09:28
Oder auch das gute alte Printf, das kann das auch. :)

MfG Peschmä

SickSoul
03-03-2005, 00:26
Weis noch nicht obs funktioniert, sobald ich's versucht hab meld ich mich wieder..., das ging echt schnell :)