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

Windows Forms Discussion :

Modifier le format d'affichage de l'heure.


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 17
    Points : 8
    Points
    8
    Par défaut Modifier le format d'affichage de l'heure.
    Bonjour à vous !

    Depuis quelques jours je me suis attelé à développer un petit "compagnon" de jeu, pour le MMORPG NosTale.

    Une des fonctionnalités que j'ai ajouté indique l'heure actuelle, et l'heure d'un certain événement.

    Cependant, l'heure n'est pas affichée comme on peut le voir traditionnellement sur nos écrans, du type, 01:09 pour une heure et neuf minutes, ça l'affiche comme ça : 1:9.

    ça ne me convient pas puisque c'est "déroutant".

    Je ne sais pas comment forcer l'affichage sur deux digits plutôt qu'un seul.

    Le code que j'utilise pour afficher l'heure dans deux textBox différentes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    heureBateau1.Text = (Convert.ToString(DateTime.Now.Hour)) + ':' + (Convert.ToString(DateTime.Now.Minute));
     
    prochainBateau.Text = (Convert.ToString(heureProchain)) + ':' + (Convert.ToString(minuteProchain));

    Les variables que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int minuteProchain=0;
    int minuteNow = DateTime.Now.Minute;
    int heureProchain=0;
    int heureNow = DateTime.Now.Hour;
    Et pour récupérer minuteProchain et heureProchain, j'ai fais un switch, en fonction de l'heure actuelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    switch(minuteNow)
                {
                    case 0:
                        minuteProchain = 5;
                        heureProchain = heureNow;
                        break;
                    case 1:
                        minuteProchain = 5;
                        heureProchain = heureNow;
                        break;
    //etc


    Savez vous donc comment je peux afficher l'heure sur 2 digits tout le temps, au lieu d'un ?

    Ah et aussi, quand il faut afficher 00:00, donc minuit, il affiche 24:0

    D'avance merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Tu te compliques un peu la vie. La classe DateTime comporte pas mal de méthodes permettant de jouer avec la date et l'heure comme AddMinutes. Idem pour l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DateTime HeureBateau = DateTime.Now;
    heureBateau1.Text = HeureBateau.ToString("HH:mm");
    heureProchainBateau.Text = HeureBateau.AddMinutes(5).ToString("HH:MM");
    etc...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    J'ai essayé le HH:mm et HH:MM mais idem, affiche toujours un seul digit

  4. #4
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par chyrla Voir le message
    J'ai essayé le HH:mm et HH:MM mais idem, affiche toujours un seul digit
    Peux-tu nous montrer le code qui ne fonctionne pas?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    J'ai utilisé le code quelques lignes plus haut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DateTime HeureBateau = DateTime.Now;
    heureBateau1.Text = HeureBateau.ToString("HH:mm");
    prochainBateau.Text = HeureBateau.AddMinutes(5).ToString("HH:MM");
    Résultat : https://prnt.sc/ildpf0

  6. #6
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Hum pour ma part j'ai bien le résultat attendu A l'exception près qu'il faut corriger le "MM" en "mm". D'ailleurs, petit lien vers la doc qui t'indique tous les formats du DateTime.ToString : https://msdn.microsoft.com/fr-fr/lib...v=vs.110).aspx

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Attention, faute de frappe de ma part c'est .ToString("HH:mm") et non pas ("HH:MM") ! En revanche, je n'ai pas d'explication sur ton résultat.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Moi toujours pas même après correction

  9. #9
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Si tu mets un point d'arrêt au niveau du "heureBateau1.Text = HeureBateau.ToString("HH:mm");" et un espion sur HeureBateau.ToString("HH:mm"), tu obtiens quoi dans la valeur de l'espion?

    Et quel est le type de contrôle qui affiche la valeur? Un TextBox? Si oui, tu n'as pas mis de format dessus?

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 17
    Points : 8
    Points
    8
    Par défaut
    Oui c'est une TextBox, (enfin deux), pas de format assigné.

    pour ta demande arrêt et espion je ne suis qu'un humble débutant je ne connais donc pas ces notions

  11. #11
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 669
    Points : 5 238
    Points
    5 238
    Par défaut
    Citation Envoyé par chyrla Voir le message
    Oui c'est une TextBox, (enfin deux), pas de format assigné.

    pour ta demande arrêt et espion je ne suis qu'un humble débutant je ne connais donc pas ces notions
    Que voici une excellente occasion d'apprendre quelque chose.
    Surtout que l'utilisation du débogueur est au centre de tout développement, on peut difficilement s'en passer.

    Sinon, il reste la documentation exhaustive de Microsoft :
    https://msdn.microsoft.com/fr-fr/library/sc65sadd.aspx

Discussions similaires

  1. [WD14] Format d'affichage heures
    Par Raptor92 dans le forum WinDev
    Réponses: 2
    Dernier message: 07/01/2010, 17h38
  2. Comment modifier la durée d'affichage du hint ?
    Par OutOfRange dans le forum Composants VCL
    Réponses: 3
    Dernier message: 29/07/2005, 11h09
  3. Formater l'affichage d'un fichier
    Par devdev2003 dans le forum Linux
    Réponses: 3
    Dernier message: 28/06/2005, 17h47
  4. [CR8] Problème de Format d'affichage
    Par khabch dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 19/02/2004, 14h10
  5. [VB6] [Flexgrid] Format d'affichage des numériques
    Par yansolo dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/10/2002, 21h00

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