|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Dec 2009
Messaggi: 98
|
[JAVA_RISOLTO] Timer
Per caso qualcuno ha uno spezzone di codice che sia in grado di avviare e stoppare un timer che una precisione intorno ai millisecondi
Ultima modifica di topix93 : 18-02-2012 alle 00:11. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Milano Beach
Messaggi: 1696
|
Se devi solo misurare un tempo (es: misurare il tempo di esecuzione di un task) un paio di Calendar.getTimeInMillis() dovrebbero bastare.
http://docs.oracle.com/javase/1.5.0/...InMillis%28%29
__________________
~ Cthulhu: MacBookPro 13.3" ~ Azathoth: D510MO |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Usa System.nanoTime().
Premetto che a quest'ora non mi fiderei neanche se scrivessi il mio nickname MA Codice:
public class Crono {
private long timeline = 0;
private long then = 0;
private boolean paused;
public void start() {
if(!paused) timeline = 0;
paused = false;
then = System.nanoTime();
}
public void pause() {
updateTimeline();
paused = true;
}
public void stop() {
if(!paused) {
updateTimeline();
}
}
protected void updateTimeline() {
long now = System.nanoTime();
long dtime = now - then;
timeline += dtime;
}
public long getTimeNs() {
return timeline;
}
public String toString() {
long ms = 1000000;
long s = ms * 1000;
long m = s * 60;
long h = m * 60;
long hh = timeline / h;
long mm = (timeline - hh * h) / m;
long ss = (timeline - hh * h - mm * m) / s;
long msms = (timeline - hh * h - mm * m - ss * s) / ms;
return String.format("%d:%d:%d.%d", hh, mm, ss, msms);
}
public static void main(String[] args) {
Crono c = new Crono();
java.util.Scanner in = new java.util.Scanner(System.in);
System.out.println("S to start, P to pause, X to stop, Q to quit");
while(true) switch(in.nextLine().toLowerCase()) {
case "s":
c.start();
System.out.println("Partito...");
break;
case "p":
c.pause();
System.out.println("In pausa (Parziale: " + c + ")");
break;
case "x":
c.stop();
System.out.println("Tempo trascorso in ns: " + c);
break;
case "q":
System.out.println("Uscita");
return;
}
}
}
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Dec 2009
Messaggi: 98
|
grazie a tutti... alla fine ho usato Calendar.getTimeInMillis()
Codice:
long startTime = Calendar.getTimeInMillis(); //Mie Operazioni long finalTime = Calendar.getTimeInMillis(); long durata = finalTime - startTime |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:39.



















