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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
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());
   }
)