IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

display regular time


Sujet :

avec Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut display regular time
    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());
       }
    )

  2. #2
    Membre éclairé Avatar de unknow0
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 452
    Points : 676
    Points
    676
    Par défaut
    Bonjour,
    Citation Envoyé par domxaline Voir le message
    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
    nombre entier sur deux digit plutot

    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
    sinon on met hour modulo 12 (reste de la division entiere par 12)

    idem ici (hour<12?"AM":"PM")
    si hour<12 on ecrit am sinon pm

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    return String.format("%d: %02d: %02d %s",((hour==0||hour==12)?12:hour%12),minute,second,(hour<12?"AM":"PM"));
    %d : remplacé par l'entier ((hour==0||hour==12)?12:hour%12)
    (si hour = 12 ou 0, alors on met 12, sinon on met hour modulo 12 (a modulo b = reste de la division entière de a par b)

    %02d : remplacé par l'entier minute

    %02d : remplacé par l'entier second

    %s : remplacé par la chaine de caractères (hour<12?"AM":"PM") (si hour < 12 alors on met "AM", sinon on met "PM")

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 684
    Points : 147
    Points
    147
    Par défaut
    merci beaucoup,j'ai compris

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 562
    Points : 21 625
    Points
    21 625
    Par défaut
    Soit dit en passant, c'est une manière bien compliquée d'afficher l'heure. Personnellement je transformerais tout ça en Date et utiliserais plutôt un SimpleDateFormat.
    Pas besoin de s'embêter à faire des conditions sur 12 ou sur AM/PM.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Kylix] Kylix 3 et redhat 9 time.h
    Par pixelrock dans le forum EDI
    Réponses: 6
    Dernier message: 27/09/2003, 20h41
  2. [LG]Pause de programme ou Break time
    Par lvdnono dans le forum Langage
    Réponses: 11
    Dernier message: 17/05/2003, 17h23
  3. mise à jour de champs time (interbase)
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 04/03/2003, 10h25
  4. calcul entre 2 champs time
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 19/02/2003, 10h12
  5. [Kylix] Kylix 3 C++ OE et fichier time.h
    Par Max13 dans le forum EDI
    Réponses: 7
    Dernier message: 30/10/2002, 14h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo