# Zeit-Timer?



## ichebem (11. Januar 2008)

Ja ich habé mal wieder so ein no0biges problemchen----

die frage ist recht simpel... kann man bei java einen timer einbauen....


```
System.out.println("Ein kleiner Reaktionstest! Tippe die abgebildete Zahl schnellstmöglich ein" );
int zahl= (int) (Math.random() * 10);
System.out.println(zahl );
String tipp = bin.readLine();
int tippint = Integer.parseInt(tipp); 

if (tippint == zahl)
       System.out.println("Ja, das war die Richtige Zahl!" + ZEIT" );
```

kann man da z.b. die zeit messen zwischen "System.out.println(zahl );" und der eingabe " String tipp = bin.readLine(); "?

und ja in dem beispielcode fehlt: 

```
throws IOException {
	
	BufferedReader bin = new BufferedReader(    				 new InputStreamReader(System.in));
```

aber das ist nebensächlich

hoffe auf schnelle antwort


----------



## MeinerEiner_80 (11. Januar 2008)

Moin!
Mit System.currentTimeMillis() bekommst du die aktuelle Systemzeit in Millisekunden.
Nach der Eingabeaufforderung und nachdem die Zahl eingegeben wurde, jeweils die Systemzeit auslesen, Differenz bilden, fertig...

*grüssle*
MeinerEiner


----------



## ichebem (11. Januar 2008)

also wäre es so:

```
int zeit1 = System.currentTimeMillis();
........
int zeit2 = System.currentTimeMillis();
..
int zeit = zeit2-zeit1
System.out.println("Deine Zeit war: " + zeit);
```


----------



## Matze (11. Januar 2008)

Genau, nur musst du die Zeit noch etwas formatieren, sonst bekommst du ja den Zeitunterschied in Millisekunden


----------



## ichebem (11. Januar 2008)

ichebem hat gesagt.:


> also wäre es so:
> 
> ```
> int zeit1 = System.currentTimeMillis();
> ...




ok, das da t net!

Error ist:
_possible loss of precision
found: long
requiered: int
                int zeit 1 = System.currentTimeMillis ();
_
das heißt ich habe nen falschen variablen typen..kann mir mal einer den richtigen sagen...und mir von dem aus auch dann gleich die umwandlung zu integer?


----------



## Matze (11. Januar 2008)

Warum den unbedingt in int?
Der Datentyp, den du brauchst heißt long
also:


```
long lZeit1 = System.currentTimeMillis();
...
```


----------



## ichebem (11. Januar 2008)

jaja---habe mich mal wieder vertan wie jeder anfänger...

super lieben dank euch beiden.. es t so wie es soll---- ich suche atm nur noch die umrechnungen von milisekunden zu sekunden....sind 1000 oder? mili=1000...

danke ihr seid super!


----------



## Matze (11. Januar 2008)

Yo, 1 Sek = 1000 Millisekunden (milli = 10¯³)


----------



## ichebem (11. Januar 2008)

ach ne wie immer..ichhabs mit
long variablen dividiert man mit:

/

frage, wie m,ache ich es, dass der auch nachkomme stellen anzeigt?
denn bei mir kommt momentan immer 0 sekunden..... das ist ein bisl dumm...(klar es sei denn ich warte extra 10sekunden)


----------



## Matze (11. Januar 2008)

Anscheinend kennst du die verschiedenen Datentypen nicht?!
Erstmal solltest du dich darüber mal schlau machen, ist für jedes Projekt wichtig: Hier

1. Mit Long dividieren ist das Selbe wie mit int
2. Long hat keine Kommastellen, dafür brauchst du entweder float oder double


----------



## ichebem (11. Januar 2008)

jo wo du recht hast hast du recht...sage ja ich bin in dem punkte ein anfänger...aber dank eurer hilfe kommt was halbweg gutes bei rum..danke für den link!


----------



## Matze (11. Januar 2008)

Schreib ihn dir besser auf, Profis wie Anfängern ist dieses e-Book ein sehr gutes Nachschlagewerk. Und für dich gleich noch die Grundlagen


----------

