<java> display regular time
domxaline
Messages postés
204
Statut
Membre
-
Reivax962 Messages postés 3742 Statut Membre -
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
bonjour expliquez moi cette ligne s'il vous plaît
return String.format("%d: %02d: %02d %s",((hour==0||hour==12)?12:hour%12),minute,second,(hour<12?"AM":"PM"));
j'ai compris jusqu'à là
%02d veut dire 2 decimales
s veut dire string
hour==0||hour==12)?12:hour%12 veut dire
si hour strictement egal 0 ou hour strictement egal 12 on met 12 si non
à partir de là je ne comprends pas
bonjour expliquez moi cette ligne s'il vous plaît
return String.format("%d: %02d: %02d %s",((hour==0||hour==12)?12:hour%12),minute,second,(hour<12?"AM":"PM"));
j'ai compris jusqu'à là
%02d veut dire 2 decimales
s veut dire string
hour==0||hour==12)?12:hour%12 veut dire
si hour strictement egal 0 ou hour strictement egal 12 on met 12 si non
à partir de là je ne comprends pas
package javaapplication1;
public class Tuna
{
private int hour;
private int minute;
private int second;
public void setTime(int h,int m, int s)
{
hour=((h>=0 && h<24)? h:0);
minute=((m>=0 && m<60)? m:0);
second=((s>=0 && s<60 ? s:0));
}
public String toMilitary()
{
return String.format("%02d:%02d:%02d",hour,minute,second);
}
public String toString()
{
return String.format("%d: %02d: %02d %s",((hour==0||hour==12)?12:hour%12),minute,second,(hour<12?"AM":"PM"));
}
}
package javaapplication1;
public class Apples
{
public static void main(String[]args)
{
Tuna tunaObject=new Tuna ();
System.out.println(tunaObject.toMilitary());
System.out.println(tunaObject.toString());
tunaObject.setTime(13,27,6);
System.out.println(tunaObject.toMilitary());
System.out.println(tunaObject.toString());
}
)
3 réponses
-
Bonjour,
return String.format("%d: %02d: %02d %s",((hour==0||hour==12)?12:hour%12),minute,second,(hour<12?"AM":"PM"));
« j'ai compris jusqu'à là
%02d veut dire 2 decimales
s veut dire string
hour==0||hour==12)?12:hour%12 veut dire
si hour strictement egal 0 ou hour strictement egal 12 on met 12 si non... »
Voilà la suite :
... on met la portion congrue de l'heure modulo 12. (donc pour 5h, on met 5h, pour 13h, on met 1h, pour 20h, on met 8h, etc.)
Ensuite, on met les minutes, puis les secondes.
Et finalement, si l'heure est < 12, on met AM (matin), et si l'heure est >= 12, on met PM (après-midi).
Xavier -
hour%12 signifie hour modulo 12.
En gros tu divise hour par 12 et tu prends le reste de cette division.
Donc par exemple si hour = 13
hour%12 = reste de 13/12 = 1 -
-
Salut,
J'ajoute qu'on utilise l'opérateur conditionnel (?:) également appelé opérateur ternaire dont le format est:
opérande1 ? opérande2 : opérande 3
opérande1 doit être une expression booléenne.
L'exécution se réalise de la manière suivante:
Si le résultat de l'évaluation de opérande1 est true le résultat est opérande2.
Sinon, le résultat est opérande3.
Cordialement,
Dan -
Bonjour,
La phrase « l'opérateur conditionnel (?:) également appelé opérateur ternaire » me gène un peu, car elle laisse entendre que "opérateur ternaire" est égal à (?:), alors que "opérateur ternaire" signifie juste que c'est un opérateur qui prend trois opérandes, contrairement aux opérateurs binaires qui en prennent deux (+, ==, <, *, &&, etc.) et aux opérateurs unaires, qui n'en prennent qu'un seul (typiquement, le ! booléen)
Xavier
-