# sekunden zählen



## tralala (20. Aug 2008)

hallo!
ich suche eine funktion mit der man sekunden zwischen zwei mausklicks zählen kann. hab schon bei google gesucht, aber konnte nichts wirklich brauchbares finden  kann mir hier vielleicht jemand helfen?


----------



## SlaterB (20. Aug 2008)

http://www.google.de/search?hl=de&q=java+Zeitmessung&meta=


----------



## tralala (20. Aug 2008)

habe es jrtzt mit folgendem code versucht, da gibt er mir aber immer 0 sec an :? 


```
long zstVorher;
		long zstNachher;

		zstVorher = System.currentTimeMillis();
		zstNachher = System.currentTimeMillis();
		System.out.println("Zeit benötigt: " + ((zstNachher - zstVorher)/1000) + " sec");
```
[/quote][/code]


----------



## SlaterB (20. Aug 2008)

weil zstVorher gleich zstNachher ist, wenn du sie direkt hintereinander abfragst,
da musst du schon paar Millionen andere Befehle zwischendurch ausführen, damit eine ganze Sekunde vergeht..

oder zum Testen
Thread.sleep(3000); -> 3 sec warten


----------



## tralala (20. Aug 2008)

danke, hab es gerade getestet, leider dauern 5 sek irgendwie 22 :?


----------



## Quaxli (20. Aug 2008)

Das liegt an Deinem Code...

Grundsätzlich ist aber System.currentTimeMillis() nicht sehr genau. Soweit ich weiß, ist das abhängig vom OS.
Ich würde für genaue Messungen daher lieber auf System.nanoTime() zurück greifen.

Beispiel:


```
public class Test {

	public static void main(String[] args){
    long zstVorher;
    long zstNachher;

    zstVorher = System.nanoTime();
    
    try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
    zstNachher = System.nanoTime();
    
    long delta = zstNachher - zstVorher;
    
    System.out.println("Zeit benötigt: " + (delta/1e9) + " sec"); 
    
	}

}
```


----------



## xysawq (20. Aug 2008)

```
boolean clicked = false;
long vorher = 0;
long nachher = 0;

public void mouseClicked(MouseEvent e)
{
	if(clicked)
	{
		nachher = System.nanoTime();
		
		long delta = nachher - vorher;
		vorher = nachher;
		
		System.out.println("Zeit benötigt: " + (delta/1e9) + " sec");
	}
	else
	{
		vorher = System.nanoTime();
		clicked = true;
	}
}
```

Gibt die Zeit in Sekunden zwischen 2 Klicks aus (immer und immer wieder).


----------



## tralala (20. Aug 2008)

ok danke, das funzt schon mal besser


----------

