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 :

[C#2] Problème sur soustraction de DateTime


Sujet :

Windows Forms

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 168
    Points
    168
    Par défaut [C#2] Problème sur soustraction de DateTime
    Bonjour,

    J'ai un petit problème en voulant soustraire des DateTime. Logiquement j'effectue l'opération suivante : heure de fin - heure de début. Mais voilà, lorsque l'heure de fin est >= heure de début, le résultat de cette opération me donne -(heure de début).
    Voici mon code :
    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
     private string obtenirTempsRestant(int heure, int minute)
            {
                // On crée tout d'abord le DateTime de la sonnerie
                DateTime heureSonnerie = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, heure, minute, 0);
                DateTime heureActu = new DateTime();
                // Résultat de la soustraction
                TimeSpan heureresultat = new TimeSpan();
                heureActu = DateTime.Now; // Heure actuelle
     
                // On fait un tour de cadran supplémentaire dans ce cas :
                if (heureActu > heureSonnerie)
                    heureSonnerie.AddDays(1);
     
                heureresultat = heureSonnerie - heureActu;
                return (heureresultat.Hours + ":" + heureresultat.Minutes + ":" + heureresultat.Seconds) ;
            }
    J'arrive pas à trouver ce qui cloche

    Autre question, j'au une textBox dont j'ai coloré le texte puis l'ai mis en ReadOnly, du coup la couleur du texte ne s'affiche plus. Qu'elle est la solution pour ce problème ?

    Je vous remerci d'avance pour vos réponses,
    Bonne journée
    Mattk

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    heure fin c'est heure sonnerie, c'est ça?
    Car là je vois pas de PB. J'ai repris ton code est c'est bon.
    Si heureSonnerie > heureActu : résulat +
    Si heureSonnerie < heureActu : résulat -
    Normal quoi

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 168
    Points
    168
    Par défaut
    Ben si tu veux le problème c'est si l'heure de sonnerie est située à 2h00 (matin) et que l'heure actuelle est de 22h00, j'aimerais qu'il m'indique qu'il reste 4H00. Et pour le moment c'est pas le cas.

  4. #4
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Le bon code est :

    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
     private string obtenirTempsRestant(int heure, int minute)
            {
                // On crée tout d'abord le DateTime de la sonnerie
                DateTime heureSonnerie = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, heure, minute, 0);
                DateTime heureActu = new DateTime();
                // Résultat de la soustraction
                TimeSpan heureresultat = new TimeSpan();
                heureActu = DateTime.Now; // Heure actuelle
    
                // On fait un tour de cadran supplémentaire dans ce cas :
                if (heureActu > heureSonnerie)
                    heureSonnerie = heureSonnerie.AddDays(1);
    
                heureresultat = heureSonnerie - heureActu;
                return (heureresultat.Hours + ":" + heureresultat.Minutes + ":" + heureresultat.Seconds) ;
            }

  5. #5
    Membre habitué

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 13
    Points : 168
    Points
    168
    Par défaut
    ah ok j'utilisais mal le AddDays, je pensais que cette fonction de la classe incrémentée elle même le nombre de jour de la variable.
    Merci

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

Discussions similaires

  1. Datetime + Mysql problème sur insertion
    Par hirochirak dans le forum ASP.NET
    Réponses: 12
    Dernier message: 08/12/2008, 17h34
  2. [FLOAT] Problème sur addition et soustraction
    Par BerBiX dans le forum Java ME
    Réponses: 5
    Dernier message: 10/10/2008, 17h33
  3. Problème sur soustraction
    Par flo456 dans le forum ASP
    Réponses: 8
    Dernier message: 13/04/2006, 15h41
  4. Problème de select sur une date (DATETIME....)
    Par zeldoi5 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/05/2005, 11h19
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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