Millisekunden umrechnen

Status
Nicht offen für weitere Antworten.

SebastianK

Mitglied
abend,

ich habe nun ein programm geschrieben, das einen zeitintervall in millisekunden speichert.
ich möchte nun die millisekunden entsprechend ausgeben lassen.
die ausgabe bereitet mir allerdings probleme.

die millisekunden sollen am ende in "Tagen Stunden:Minuten" ausgegeben werden.
ich hab nur keine ahnung wie ich das von millisekunden aus umrechne.

hoffe mir kann wer helfen.
 

L-ectron-X

Gesperrter Benutzer
Vielleicht geht das auch mit einem einfachen Zweizeiler.

Code:
import java.text.*;

DateFormat formatter = new SimpleDateFormat("dd 'Tage' HH 'Stunden und' mm 'Minuten'");
System.out.println(formatter.format(new Date(millis)));
 
S

SlaterB

Gast
wie kann man sowas ungetestet posten?

1.
Zeitzonenunterschied: Millisekunde 0 ist in Deutschland eine Stunde später als in Greenwich

2.
Tag: Millisekunde 0 ist bereits am Tag 1, nach 24 Stunden ist man am Tag 2

3.
Monat: bei über 30 Tagen ist bald ein Monatswechsel, es werden nur die Tage im aktuellen Monat angezeigt

4.
von wechselnden Anzahl Tagen pro Monat, Schaltjahren, Sommer/ Winterzeit usw. ganz zu schweigen..
 

L-ectron-X

Gesperrter Benutzer
Wie kann man sich über eine halb fertige Lösung aufregen und keinen besseren Vorschlag bringen!? :bae:
 

anfänger15

Bekanntes Mitglied
nicht streiten :D

Mein Vorschlag:
Code:
long day = millisec/(24*60*60*1000);
long hour = (millisec % (24*60*60*1000))/(60 * 60 * 1000);
long min = (millisec % (60 * 60 * 1000))/(60*1000);
ungetestet!!
 

SebastianK

Mitglied
hmm..irgendwie klappen alle vorschläge nicht :)

Code:
millis = 3000;
			
DecimalFormat format = new DecimalFormat("00");
long day = millis/(24 * 60 * 60 * 1000);
long hour = (millis % (24 * 60 * 60 * 1000))/(60 * 60 * 1000);
long min = (millis % (60 * 60 * 1000))/(60 * 1000);
			
String s = "Tage:" + format.format(day)+ " Stunden:" + format.format(hour)+ " Minuten:" + format.format(min);
String s2= "Tage:"+day + " Stunden:"+hour+" Minuten:"+min;
System.out.println(s); //Ausgabe: Tage:00 Stunden:00 Minuten:00
System.out.println(s2); //Ausgabe: Tage:0 Stunden:0 Minuten:0
			
DateFormat formatter = new SimpleDateFormat("dd 'Tage' HH 'Stunden und' mm 'Minuten'");
System.out.println(formatter.format(new Date(millis))); //Ausgabe: 01 Tage 00 Stunden und 00 Minuten


ich hab noch eine rechnung gefunden, die zu funktionieren scheint.
Code:
long milliseconds = 303328120;
int milli = (int)(milliseconds % 1000);
milliseconds /=1000;
byte sec = (byte)(milliseconds % 60);
milliseconds /=60;
byte min = (byte)(milliseconds % 60);
milliseconds /=60;
byte h = (byte)(milliseconds % 24);
milliseconds /=24;
int d = (int)milliseconds;
System.out.println("Tage: "+d+" Stunden: "+h+" Minuten: "+min+" Sekunden: "+sec + " Millisekunden: "+milli);
 
S

SlaterB

Gast
> hmm..irgendwie klappen alle vorschläge nicht

weil millis = 3000; weniger als eine Minute sind, du Spassvogel ;)

> ich hab noch eine rechnung gefunden

welche letztlich genau die gleiche ist, aber natürlich schöner

> Wie kann man sich über eine halb fertige Lösung aufregen und keinen besseren Vorschlag bringen!?

in der ersten Antwort schon umfassend geschehen :bae:
 

SebastianK

Mitglied
weil millis = 3000; weniger als eine Minute sind, du Spassvogel
ups...da haste recht :)


außer die sache mit
Code:
DateFormat formatter = new SimpleDateFormat("dd 'Tage' HH 'Stunden und' mm 'Minuten'");
System.out.println(formatter.format(new Date(millis)));
diese liefert nen falschen wert.

dann danke an alle für die tipps!
problem gelöst ;)
 

Professor Chaos

Aktives Mitglied
Ich weiß, meine Antwort ist höchst überflüssig, ich hoffe, dafür reißt mir niemand den Kopf ab.^^
Da ich dasselbe Problem wie SebastianK hatte, habe ich eure Lösung übertragen und in eine eigene Klasse gepackt. Vielleicht ist mir das nicht besonders schön gelungen, aber es ist ja auch nur quick-and-dirty, was anderen vielleicht 10 Minuten Arbeit spart.^^

Ich verzichte auf die Angabe von Tagen, da mir das etwas unrealistisch erscheint.

Code:
/**
 * 
 * In analogy to SimpleDateFormat, this class provides a method
 * to pretty-print the time, given a number of milliseconds 
 *
 */
public class MyTime {

	/* instance variables */
	
	/** milliseconds... */
	private int milliseconds;
	
	/** seconds... */
	private byte seconds;
	
	/** minutes... */
	private byte minutes;
	
	/** hours... */
	private int hours;
	
	

	/* methods */
	
	/**
	 * constructor, sets the time components.
	 */
	public MyTime(long milliseconds){
		this.milliseconds = (int) (milliseconds % 1000);
		milliseconds /=1000;
		
		this.seconds = (byte) (milliseconds % 60);
		milliseconds /=60;
		
		this.minutes = (byte) (milliseconds % 60);
		milliseconds /=60;
		
		this.hours = (int) (milliseconds);
	}

	/**
	 * returns a String, in which the parameters are replaced as follows:<br>
	 * hh -> hours, mm -> minutes, ss -> seconds, SSS -> milliseconds.
	 * @param format the String to modify
	 * @return returns a String representation of the time.
	 */
	public String format(String format){
		String h = this.hours<10 ? "0"+this.hours : ""+this.hours;
		String m = this.minutes<10 ? "0"+this.minutes: ""+this.minutes;
		String s = this.seconds<10 ? "0"+this.seconds: ""+this.seconds;
		String ms;
		if(this.milliseconds<10)
			ms="00"+this.milliseconds;
		else if(this.milliseconds<100)
			ms="0"+this.milliseconds;
		else
			ms=""+this.milliseconds;
		
		return format.replace("hh", h).replace("mm", m).replace("ss", s).replace("SSS", ms);
	}
}
 
Zuletzt bearbeitet:

Professor Chaos

Aktives Mitglied
So, noch immer quick-and-dirty, nun aber sinnvoller. Meine obige Lösung war tatsächlich unlogisch, so hätte man ja für jede neue Zeit ein neues Objekt instanziieren müssen, dabei ist die Intuition ja gerade eine Darstellung zu definieren und damit verschiedene Zeiten darzustellen.

Code:
/**
 * 
 * In analogy to SimpleDateFormat, this class provides a method
 * to pretty-print the time, given a number of milliseconds 
 *
 */
public class MyTime {

	/* instance variables */
	
	/**
	 * holds the systematic of how to display the time,
	 * for example mm:ss
	 */
	private String format;
	


	/* methods */
	
	/**
	 * constructor. sets the systematic of how to display the time. 
	 * @param format this String encodes how to display the time. it
	 * can be any String, where some substrings get replaced by their 'meanings'.<br>
	 * hh -> hours<br>
	 * mm -> minutes<br>
	 * ss -> seconds<br>
	 * SSS -> milliseconds<br>
	 */
	public MyTime(String format){
		this.format = format;
	}
	
	/**
	 * formats the given time according to the MyTime object.
	 * @param timeInMilliseconds the time to format.
	 * @return the formatted time.
	 */
	public String format(long timeInMilliseconds){
		
		int milliseconds = (int) (timeInMilliseconds % 1000);
		timeInMilliseconds /=1000;
		
		byte seconds = (byte) (timeInMilliseconds % 60);
		timeInMilliseconds /=60;
		
		byte minutes = (byte) (timeInMilliseconds % 60);
		timeInMilliseconds /=60;
		
		int hours = (int) (timeInMilliseconds);
		
		String h = hours<10 ? "0"+hours : ""+hours;
		String m = minutes<10 ? "0"+minutes: ""+minutes;
		String s = seconds<10 ? "0"+seconds: ""+seconds;
		String ms;
		if(milliseconds<10)
			ms="00"+milliseconds;
		else if(milliseconds<100)
			ms="0"+milliseconds;
		else
			ms=""+milliseconds;
		
		return format.replace("hh", h).replace("mm", m).replace("ss", s).replace("SSS", ms);
	}
}
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
amgadalghabra Die vier Sortieralgorithmen die durchschnittliche Laufzeit in Millisekunden Java Basics - Anfänger-Themen 37
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
T Millisekunden-Umrechnung die 100. Java Basics - Anfänger-Themen 6
K konvertiere Millisekunden in ein Utc Date Objekt Java Basics - Anfänger-Themen 5
S Millisekunden in Datum/Uhrzeit wandeln Java Basics - Anfänger-Themen 11
T Von Millisekunden auf Stunden kommen Java Basics - Anfänger-Themen 2
G Millisekunden in Minuten und Sekunden umwandeln Java Basics - Anfänger-Themen 12
G Datum in Millisekunden umwandeln Java Basics - Anfänger-Themen 6
S Dauer --> Millisekunden in Year:Day:Hour:Minute:Second Java Basics - Anfänger-Themen 7
DStrohma Millisekunden umwandeln in Jahre, Monate, Tage, Stunden Java Basics - Anfänger-Themen 5
G Timstamp mit Millisekunden Java Basics - Anfänger-Themen 2
M millisekunden in echtes Datum umwandeln Java Basics - Anfänger-Themen 2
S long millisekunden nach Uhrzeit format Java Basics - Anfänger-Themen 5
C millisekunden bei gregoriancalendar stimmen nicht Java Basics - Anfänger-Themen 2
O errechnen von Millisekunden Java Basics - Anfänger-Themen 3
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
M Weitere Längen umrechnen Java Basics - Anfänger-Themen 2
W Stellenwertsysteme Umrechnen Java Basics - Anfänger-Themen 12
W Stellenwertsysteme umrechnen Java Basics - Anfänger-Themen 22
C Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 4
B Relativen Anteil von zwei Datümer auf Monatsebene umrechnen Java Basics - Anfänger-Themen 130
P Zeichenkette mit Binärzahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 3
F Koordinaten umrechnen Java Basics - Anfänger-Themen 10
Viktormk Methoden Zahlensysteme umrechnen / "Quartärsystem" Java Basics - Anfänger-Themen 4
GreenTeaYT Datentypen Fahrenheit - Celsius Umrechnen 2in1 Variable? Java Basics - Anfänger-Themen 10
D Liste mit Zeitstempeln in Arbeitszeit umrechnen Java Basics - Anfänger-Themen 7
A Software zum Umrechnen römischer Zahlen Java Basics - Anfänger-Themen 10
N Zahlensysteme umrechnen; Probleme bei Kommazahlen Java Basics - Anfänger-Themen 3
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
H Umrechnen Aufgabe Java Basics - Anfänger-Themen 3
M Compiler-Fehler Binäre Zahlen in Dezimalzahlen umrechnen Java Basics - Anfänger-Themen 3
E Umrechnen Basis 2-36, Probleme mit Basis 36 Java Basics - Anfänger-Themen 8
R Minuten umrechnen. Java Basics - Anfänger-Themen 9
E Datentypen Von int in double umrechnen. Java Basics - Anfänger-Themen 3
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
J Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 5
V Programm zum Umrechnen von Pferdestärken in kW Java Basics - Anfänger-Themen 9
P Datentypen int in Prozent "umrechnen" Java Basics - Anfänger-Themen 4
V Tool zum Umrechnen Dezimal in Hex Java Basics - Anfänger-Themen 7
Developer_X Kreiskoordinaten in Normale Koordinaten umrechnen Java Basics - Anfänger-Themen 4
N Laufzeit in Nanosekunden - in Minuten umrechnen Java Basics - Anfänger-Themen 6
N Tage in Jahre, Monate umrechnen Java Basics - Anfänger-Themen 1
G Uhrzeit hh:mm:ss in minuten umrechnen Java Basics - Anfänger-Themen 4
G Timestamp in Minuten umrechnen Java Basics - Anfänger-Themen 8
J Datum in Kalenderwoche umrechnen Java Basics - Anfänger-Themen 3
F Seknunden in dd.MM.YYYY umrechnen Java Basics - Anfänger-Themen 9
G Farbwerte umrechnen Java Basics - Anfänger-Themen 4
M mm in cm umrechnen und auf 5er oder auf 10er aufrunden! Java Basics - Anfänger-Themen 2
G Maßeinheiten umrechnen Java Basics - Anfänger-Themen 3
D Formel zum umrechnen in java o_O Java Basics - Anfänger-Themen 9
R in Binärzahlen umrechnen Java Basics - Anfänger-Themen 15
M Dateigrösse umrechnen? Java Basics - Anfänger-Themen 6
G Umrechnen von Zahlensystemen Java Basics - Anfänger-Themen 7
G byte und double umrechnen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben