2011-04-23 6 views

Répondre

2

Voilà comment je le ferais

long millis = System.currentTimeMillis(); 
    boolean blink = (millis % 2000) < 1000; 

il utilise l'opérateur modulo % pour déterminer la distance en deux secondes fenêtre répétant l'heure actuelle est. Puis il voit si c'est dans la première moitié (0 à 999) de la fenêtre ou la seconde moitié (1000 à 1999). Cela se traduira par une valeur booléenne qui alterne vrai et faux chaque seconde.

+0

Merci, ça fonctionne. Acceptera votre réponse une fois possible (dans 5 minutes environ) – CookieMonster

2

Le millis variables est de type long, qui est un type entier, de sorte que millis/1000 est tronquée à une valeur entière avant le 0,5 est ajouté.

Un moyen plus facile de faire ce que vous voulez peut-être:

boolean blink = ((millis/1000) & 1) == 0; 

Ceci convertit la valeur de millisecondes à quelques secondes (en divisant par 1000), puis tester le bit le plus bas pour voir si elle est 0.

+0

Merci, maintenant je comprends ce qui s'est mal passé. – CookieMonster

Questions connexes