Zeit von microsekunden auf Format mm:ss

matt89

Mitglied
ich habe eine Methode
Java:
public static String timeFormatter(long microtime)
diese wandelt eine Zeitangabe in Microsekunden in das Format "mm:ss" (minuten:sekunden) um.
zusätzlich soll die Methode..
- falls der das ergebnis negativ soll folgende Exception generieren:
Java:
throw new RuntimeException("Negativ time value provided");
- falls der Zeitwert größer als das Format "mm:ss"(minuten:sekunden)soll folgende Exception generieren:
Java:
throw new RuntimeException("Time value exceeds allowed format");

ich glaub ich muss des mit dem Rückgabewert irgendwie einen String hinbasteln weis aber net wie??
oder die Methode irgendwie erweiter bzw.überschreiben???? ?:L

die vorgegebenen Tests:

Java:
@Test
public void test_timeFormatter_10() throws Exception{
assertEquals("Wrong time Format","05:05", TaggedFile.timeFormatter(30586200L));
}


@Test
public void test_timeFormatter_08()throws Exception{
try{
//Call method with time value that underflows our format
TaggedFile.timeFormatter(-1L);
//We should never get here
fail("Time value underflows format; excepting exception");

}catch (RuntimeException s){
//Excepted
}
}

hier mein code:
Java:
public static String timeFormatter(long microtime) {
        if(microtime<0){                        //überprüft ob zeit negativ ist
            throw new RuntimeException("Negativ time value provided");
        }
        
        if(microtime>60000000){                 //überprüft ob das limit von format nicht überschreitet
            throw new RuntimeException("Time value exceeds allowed format");
        }
        return null;


Vielen Dank im Vorraus
 
Zuletzt bearbeitet von einem Moderator:

Noctarius

Top Contributor
Mit 14 Beiträgen noch nicht verstanden wie man Sourcecode formatiert? Eine Schande... Auch deine bunten Farben helfen da nicht raus.
 

Murray

Top Contributor
Die Fehlerbehandlung ist schon nicht schlecht - und berücksichtigt sogar den Typo aus der Aufgabenstellung.

Bei der Obergrenze müsste man noch mal rechnen. Was kann man den mit mm:ss maximal darstellen?. M.E. wäre das 99:59, also 99 Minuten und 59 Sekunden, ergo 99*60+59=5999 Sekunden. Bei kaufmännischer Rundung passen da also 5.999.499ms rein.

Wie könnte man vorgehen, um aus dem Millisekunden-Wert die geforderte Darstellugn zu machen?

Dazu ein paar Ansätze:
a: Millisekunden kaufmännnisch auf Sekunden runden:
Java:
int secs = Math.round( millisecs / 1000.0);

b: Minutenanteil ergibt sich ganzahliges Ergbenis der Divison der Sekunden durch 60

c: Sekundenanteil ergibt sich als Rest der o.g. Division.
 

matt89

Mitglied
es klappt wunderbar
Java:
 int secs = (int) Math.round( microtime / 1000.0);
          int min=(int) (secs/60);
ich komm auf min: 509 und sekunden: 30586

es soll aber als String "05:05" raus kommen

Ideen??
 

Murray

Top Contributor
Ich sehe gerade, dass es um Mikrosekunden geht, nicht um Millisekunden - insofern muss man nicht durch 1.000, sondern durch 1.000.000 teilen.
Aber wie kommst du auf 5:05? Bei 30.586.200 Mikrosekunden müsste man doch 0:31 erwarten, oder?
 

matt89

Mitglied
Also die microtime zeit von 331938000 gibt er richtig als 05:31 aus
aber bei der microtime 305862000 kommt nur schmarn raus.
ich müsste die zwischen schritte irgendwie auf eine kommastelle bringen?? gibts da ne methode??

Meine Rechnung:
305862000 /1000000 = 305,862
305,862 / 60 = 5,0977 (das wären die Minuten mein vorschlag die irgendwie auf 5.0 bringen )
5,0977 - 5,0= 0,097 //das sind die sekunden in minuten
0,097 *60= 5,862 // hier dann wieder irgendwie aus den 5,862 -> 5,0 machen also nur die
stelle vor dem komma

Der Code:

Java:
public static String timeFormatter(long microtime) {
        String zeit = null;
        if(microtime<0){                        //überprüft ob zeit negativ ist
            throw new RuntimeException("Negativ time value provided");
        }
        else{
            
        }
        if(microtime>357539999){                 //überprüft ob das limit von format nicht überschreitet
            throw new RuntimeException("Time value exceeds allowed format");
            
        }
        else{
            
          int konstante = (int) (microtime);
          konstante=konstante/1000000;
          int min= (konstante/60);
          int sec= konstante-min*60;
          //System.out.println("zeitsekunden: " +sec);
          //System.out.println("zeitminuten: "+min);
          
          if(min < 10 && sec < 10){
              zeit = "0"+min+":"+"0"+sec;
          }
          if(min > 10 && sec < 10){
                  zeit = ""+min+":"+"0"+sec;
              }
          if(min < 10 && sec > 10){
                  zeit = "0"+min+":"+sec;
              }
          if(min > 10 && sec > 10){
                  zeit = ""+min+":"+sec;
              }
          
          
        }
        //System.out.println("Zeit"+zeit);
        return zeit;
    }

Tests:

Java:
//Time Formatter Fälle
//1.Fall 
@Test
public void test_timeFormatter_10() throws Exception{
assertEquals("Wrong time Format","05:05", TaggedFile.timeFormatter(30586200L));
}
//2.Fall 
@Test
public void test_timeFormatter_11() throws Exception{
assertEquals("Wrong time Format","05:55", TaggedFile.timeFormatter(35500000L));
}
//3.Fall 
@Test
public void test_timeFormatter_12() throws Exception{
assertEquals("Wrong time Format","55:05", TaggedFile.timeFormatter(330500000L));
}
//4.Fall 
@Test
public void test_timeFormatter_13() throws Exception{
assertEquals("Wrong time Format","55:55", TaggedFile.timeFormatter(335500000L));
}
@Test
public void test_timeFormatter_14() throws Exception{
assertEquals("Wrong time Format","05:31", TaggedFile.timeFormatter(331938000L));}
 
G

Gast2

Gast
Java:
public static String timeFormatter(long microtime) {
 
        // [...] schnipp [...]
            
          int konstante = (int) (microtime);
          konstante=konstante/1000000;
          int min= (konstante/60);
          int sec= konstante-min*60;
          //System.out.println("zeitsekunden: " +sec);
          //System.out.println("zeitminuten: "+min);
          
          if(min < 10 && sec < 10){
              zeit = "0"+min+":"+"0"+sec;
          }
          if(min > 10 && sec < 10){
                  zeit = ""+min+":"+"0"+sec;
              }
          if(min < 10 && sec > 10){
                  zeit = "0"+min+":"+sec;
              }
          if(min > 10 && sec > 10){
                  zeit = ""+min+":"+sec;
              }
          
        // [...] schnapp[...]

Hast du dir das hier http://www.java-forum.org/java-basi...millisekunden-minuten-sekunden-umwandeln.html mal durchgelesen. Die Zeit lässt sich anders deutlich besser formatieren.
 

matt89

Mitglied
die grenze ist ja 359899999 und ich hab eine 9 zu wenig
wenn ich jetzt die 9 dazu schreib kommt ne fehler meldung
The literal 3598999999 of type int is out of range
 

matt89

Mitglied
habs jetzt so gemacht und
3598999999
ist noch immer rot unterringelt

Java:
long grenze=3598999999;
        if(microtime> grenze){
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
S Wie Rechne ich die Zeit in ...L um? Java Basics - Anfänger-Themen 15
I Zahl aufrunden (Zeit) Java Basics - Anfänger-Themen 43
H Primzahlen finden - Zeit optimieren Java Basics - Anfänger-Themen 34
B Prüfen, ob Zeit Überschreitung Java Basics - Anfänger-Themen 2
I Nächstmögliche Zeit erhalten Java Basics - Anfänger-Themen 11
hello_autumn Zeit messen von ausgeführten Tools. Java Basics - Anfänger-Themen 1
B Nächster möglicher Tag bekommen / Nächste mögliche Zeit bekommen Java Basics - Anfänger-Themen 24
Y Warum aktualisiert die Zeit nicht? Java Basics - Anfänger-Themen 4
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
S JButton soll für bestimmte Zeit verschwinden Java Basics - Anfänger-Themen 5
F actionPerformed() zur richtigen Zeit Java Basics - Anfänger-Themen 6
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
F Zeit in Milli bis Mitternacht Java Basics - Anfänger-Themen 20
M Messandwendung nach Zeit und eigener Eingabe Java Basics - Anfänger-Themen 4
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
K Eine bestimmte Zeit, eine Schleife laufen lassen. Java Basics - Anfänger-Themen 4
N Zeit berechnen, die für eine Strecke benötigt wird Java Basics - Anfänger-Themen 3
S Threads Zu bestimmer Zeit Screenshot erstellen. Java Basics - Anfänger-Themen 2
M Zahlen verändern nach Zeit Java Basics - Anfänger-Themen 6
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
H Methoden Stopwatch misst Zeit einer Methode nicht Java Basics - Anfänger-Themen 8
K Zeit auslesen von Timeserver einen Tag daneben Java Basics - Anfänger-Themen 11
S Zeit messe? Java Basics - Anfänger-Themen 8
L Zeit sekündlich aktualisieren Java Basics - Anfänger-Themen 7
S Zeit bestimmen Java Basics - Anfänger-Themen 4
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
J Aufgabe: Zeit in Sekunden Java Basics - Anfänger-Themen 9
F Einfache Klassen für Datum und Zeit Java Basics - Anfänger-Themen 3
K Zeit ablaufen lassen und nach Ablauf beenden Java Basics - Anfänger-Themen 5
G Methoden Zeit Umrechnungsfaktor Java Basics - Anfänger-Themen 2
M Reaktion auf bestimmte Zeit Java Basics - Anfänger-Themen 2
S Animation nach bestimmter Zeit ausführen Java Basics - Anfänger-Themen 3
F hat jmd Zeit mir bisschen zu helfen msn/skype Java Basics - Anfänger-Themen 10
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
F Zeit per Array "zurückdrehen" Java Basics - Anfänger-Themen 5
R Zeit kommt mir zu lange vor... Java Basics - Anfänger-Themen 7
C Ereignis nach einer gewissen Zeit Java Basics - Anfänger-Themen 10
C Falsche Zeit Java Basics - Anfänger-Themen 2
A Unix-Zeit verkürzen Java Basics - Anfänger-Themen 2
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
H Programm zu bestimmten Zeit ausführen Java Basics - Anfänger-Themen 3
R Stoppuhr: Zeit ermitteln und übergeben - Variable static?? Java Basics - Anfänger-Themen 6
G Umrechnung Zeit/Temperatur Java Basics - Anfänger-Themen 6
Luk10 Zeit-Aspekt in Java Java Basics - Anfänger-Themen 3
N zeit ausgeben Java Basics - Anfänger-Themen 5
C countdown/timer/Zeit warten lassen Java Basics - Anfänger-Themen 14
S Dynamisch Zeit auslesen Java Basics - Anfänger-Themen 11
X Fibonacci mit durchschnittlicher Zeit Java Basics - Anfänger-Themen 5
S Kennt jemand die Default-Cache Zeit beim Java-Plugin? Java Basics - Anfänger-Themen 2
M Zeitdauer-Klasse (zeit in java) Java Basics - Anfänger-Themen 9
1 Zeit und Datum der Letzten Bearbeitung einer Datei auslesen Java Basics - Anfänger-Themen 3
L Zeit stoppen in mehreren Threads Java Basics - Anfänger-Themen 2
B JFrame nur eine gewisse Zeit anzeigen Java Basics - Anfänger-Themen 3
R Zeit eingeben über Formular Java Basics - Anfänger-Themen 3
D Kann man die Bios Zeit auslesen? Java Basics - Anfänger-Themen 5
G Zeit-Funktion Java Basics - Anfänger-Themen 4
D Zeit Problem! Java Basics - Anfänger-Themen 8
M Zeit zurückgeben je sekunde Java Basics - Anfänger-Themen 8
F Zeit stoppen Java Basics - Anfänger-Themen 6
C Zeitberechnungen wieviel Zeit vergangen ist. Java Basics - Anfänger-Themen 4
J System Zeit Java Basics - Anfänger-Themen 3
D Zeit messen Java Basics - Anfänger-Themen 7
M Faktor Zeit in Java! Gibt es sowas? Java Basics - Anfänger-Themen 6
H Reaktion nach gewisser Zeit Java Basics - Anfänger-Themen 20
S Zeit berechnen Java Basics - Anfänger-Themen 6
C Zeit horchen! Java Basics - Anfänger-Themen 3
G Programm soll nach bestimmter Zeit etwas tun Java Basics - Anfänger-Themen 24
P Zeit - Thread bei Simulationen Java Basics - Anfänger-Themen 4
H TicTacToe: Zeit zwischen Zügen lassen Java Basics - Anfänger-Themen 9
C Zeit Schleife Java Basics - Anfänger-Themen 5
S Zeit messen! Java Basics - Anfänger-Themen 12
S CPU Zeit Java Basics - Anfänger-Themen 8
P Aktuelles Datum/Zeit in GMT? Java Basics - Anfänger-Themen 2
E Zeit runterlaufen lassen Java Basics - Anfänger-Themen 2
G Zeit auslesen in bestimmtem Format Java Basics - Anfänger-Themen 2
D String in Zeit umwandeln? Java Basics - Anfänger-Themen 3
G zeit subtrahieren Java Basics - Anfänger-Themen 6
E Nach einer gewissen Zeit wiederholen Java Basics - Anfänger-Themen 13
TRunKX Probleme mit der Zeit (Stunden Sekunden) Java Basics - Anfänger-Themen 7
W Zeit Variablen? Java Basics - Anfänger-Themen 6
S GregorianCalendar - Vergangene Zeit Java Basics - Anfänger-Themen 17
G Auf eine Uhrzeit xx Minuten addieren u. mit Akt. Zeit vergl. Java Basics - Anfänger-Themen 5
G Zeit im 24 Stundenrhythmus Java Basics - Anfänger-Themen 3
G Methode nach bestimmter Zeit aufrufen Java Basics - Anfänger-Themen 3
H GregorianCalendar Zeit abziehen (Countup) Java Basics - Anfänger-Themen 9
H SimpleDataFormat.format() spuckt falsches Jahr aus (statt 1999 = 3899) Java Basics - Anfänger-Themen 7
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
R Timer Format: 00:00:00 Java Basics - Anfänger-Themen 29
I Format Problem mit Wert - bekomme 0,10 anstatt 10,00 Java Basics - Anfänger-Themen 6
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
A Out.format problem. Java Basics - Anfänger-Themen 3
H Datentypen Was für eine Format verbirgt sich hinter dem Integer-Wert 053? Java Basics - Anfänger-Themen 2
W OOP Objektorientiert: Darstellung von Uhrzeiten im 24-Stunden-Format Java Basics - Anfänger-Themen 15
L Java Date Format ändern Java Basics - Anfänger-Themen 5
M JSON Format Java Basics - Anfänger-Themen 5
B Schleife erstellen mit String Format "001" bis "999" Java Basics - Anfänger-Themen 2
N jodaTime java.lang.IllegalArgumentException: Invalid format Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben