2012-05-27 5 views
1

Ceci est mon code ...et d'autre statments Java tente d'arrêter une déclaration aux devoirs

private void updateDisplay() { 
    if(hours.getValue() == 0){ 
     hours.setValue(12); 
     displayString = hours.getDisplayValue() + ":" + 
     minutes.getDisplayValue() + " am"; 
    } 
    else if(hours.getValue() < 12){ 
     displayString = hours.getDisplayValue() + ":" + 
     minutes.getDisplayValue() + " am"; 
    } 
    else if(hours.getValue() == 12){ 
     displayString = hours.getDisplayValue() + ":" + 
     minutes.getDisplayValue() + " pm"; 
    } 
    else if(hours.getValue() < 24){ 
     displayString = hours.getValue() - 12 + ":" + 
     minutes.getDisplayValue() + " pm"; 
    } 
} 

Donc, fondamentalement, c'est une horloge im essayant d'afficher au format 12 heures .. Quand il change de 11: 59pm

je l'obtiens pour dire 12:00 am mais une fois que timeTick() il une fois il va 12:01 pm à cause de mon if hours.getValue == 0 alors nous le faisons 12 mais plus tard dans la méthode son si hours.getValue() == 12 rend PM. Je veux éviter cela. Des idées à ce sujet tout en conservant java plutôt simple?

RÉSOLU Merci. Au lieu de setValue (12) je viens d'ajouter 12 si heures.getValue() == 0

Répondre

1

Pourquoi ne pas faire ce que vous faites pour quand les heures sont égales à 12?

Ne définissez pas la valeur des heures et ajoutez simplement 12 lorsque vous l'imprimez.

+0

Vous avez raison je l'utilisais déjà pour le PM Je ne sais pas pourquoi je ne l'ai pas vu pour le matin. Merci beaucoup mec – SmilesNLulz

0

utiliser une horloge interne 24 heures, mais afficher sa valeur en utilisant « mod heures 12 »

+0

Je ne suis pas familier avec ce que vous voulez dire ... Et parce que c'est pour une tâche que je ne peux pas vraiment sortir de ce que nous étions supposés apprendre. Vous avez raison en interne, il est un 24 heures, je dois juste l'afficher comme un 12 .. Je peux passer devant ce 12h01. Je mets ma valeur à 12 mais la prochaine fois que je l'affiche, je la verrai 12 et je la prendrai pour un pm ce qui ne sera pas en ce moment ... – SmilesNLulz

+0

'mod' est le reste d'une division, et en Java est utilisé avec le Symbole "%". '4% 3 = 1; 24% 12 = 0' – mastaH

+0

Seul le problème est, 24h! = 0am, mais 12pm. De même pour 12h. Il a besoin d'une manipulation supplémentaire (comme OP l'a déjà fait). –

0

En supposant hours.getValue() retourne un int, vous pouvez le faire hours.getValue()/13 == 0 ? hours.getValue() + ":" + minutes.getDisplayValue() + " AM": hours.getValue() - 12 + ":" + minutes.getDisplayValue() + " PM";. L'expression est appelée l'opérateur ternaire et le type de données int tronque le résultat décimal.

Je l'ai mis à jour pour tout faire. J'espère que vous aimez 1 doublures.

Questions connexes