2011-04-03 3 views
0

J'essaie de comparer l'heure en millisecondes dans Android avec l'heure du système. startDate et endDate sont tous long et représentent des horodatages en millisecondes.Android comparant le temps et les milisecondes

if (startDate <= System.currentTimeMillis() >= endDate) 

C'est l'erreur que je reçois:

L'opérateur> = est définie pour le type d'argument (s) booléen, longue

Répondre

1

Vous devez changer pour

if (startDate <= System.currentTimeMillis() && System.currentTimeMillis() >= endDate) 

La raison en est que les instructions sont évaluées comme suit:

startDate <= System.currentTimeMillis(); 
<result of above> >= endDate; 

ou équivalente

(startDate <= System.currentTimeMillis()) <= endDate 

Les dans une valeur booléenne <= résultats de l'opérateur et ensuite ce que vous avez est

boolean <= long 

que vous ne pouvez pas le faire. Malheureusement, en Java, vous ne pouvez pas enchaîner les opérations comme ça parce qu'elles sont évaluées une à la fois et ensuite le résultat de la première est utilisé comme entrée pour la seconde, et ainsi de suite.