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

C# Discussion :

comparer 2 object{system.timespan}


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2007
    Messages : 83
    Points : 53
    Points
    53
    Par défaut comparer 2 object{system.timespan}
    Bonjour

    Je doit additionner plusieurs string ( heure:minute:sec ) représentant la durée de différentes opération fait dans une journée de travail.

    Pour facilité l'addition , je TIMESPAN.TRYPARSE chaque string.

    Pour chaque jours de la semaine j'ai donc 7 totaux de durée d'opération et 7 totaux de nombre d'heure dans une journée que je mets dans une DATATABLE nommé TOTAL

    Par la suite, j'affiche TOTAL dans un DGV


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    illustration du DGV
     
    JOURS                    DIMANCHE  | LUNDI    | MARDI    | MERCREDI      | JEUDI      | VENDREDI | SAMEDI
    # HEURE DANS JOURNEE |    0:00:00   | 7:30:00  | 8:30:00  | 1:30:00      | 5:30:00  | 7:00:00     | 0:00:00
    TOTAUX DES OPÉRATION |    0:00:00   | 7:00:00  | 8:00:00  | 2:30:00      | 5:30:00  | 7:30:00     | 0:00:00


    Je veux comparer les # HEURE DANS JOURNÉE avec les TOTAUX DES OPÉRATION pour mettre le BACKCOLOR en rouge si les 2 valeurs ne sont pas identique.

    Les valeur de la DATATABLE et du DGV sont des OBJECT{SYSTEM.TIMESPAN}.


    Que les valeurs soit identiques ou différents, le code suivant me donne toujours FALSE


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     if (dataGridView3.Rows[1].Cells[0].Value == dataGridView3.Rows[1].Cells[i].Value)

    J'ai essayé de fait un CAST pour avoir juste des valeur de type STRING ou TIMESPAN mais sans succès.


    Y a t-il un moyen efficace de comparer des OBJECT{SYSTEM.TIMESPAN}?


    merci de votre aide

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut

    Je serais curieux de voir comment tu utilises TimeSpan.TryParse (cf. la doc) : as-tu débogué pour voir ce que tu obtiens comme résultat après cette opération ?

    Parce que comparer des TimeSpan, c'est vraiment trivial :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    TimeSpan oneHourAndAHalf1 = new TimeSpan(1, 30, 0);
    TimeSpan oneHourAndAHalf2 = new TimeSpan(1, 30, 0);
    TimeSpan twoHours = new TimeSpan(2, 0, 0);
    Console.WriteLine(oneHourAndAHalf1 == oneHourAndAHalf2);
    Console.WriteLine(oneHourAndAHalf1 == twoHours);
    Console.WriteLine(oneHourAndAHalf2 == twoHours);
    On obtient bien :
    True
    False
    False
    Avec des string uniquement (dans cet exemple je ne m'embête pas à contrôler le résultat du TimeSpan.TryParse :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    string oneHourAndAHalf1 = "1:30:00";
    string oneHourAndAHalf2 = "1:30:00";
    string twoHours = "2:0:00";
    TimeSpan result1;
    TimeSpan result2;
    TimeSpan.TryParse(oneHourAndAHalf1, out result1);
    TimeSpan.TryParse(oneHourAndAHalf2, out result2);
    Console.WriteLine(result1 == result2);
    TimeSpan.TryParse(twoHours, out result2);
    Console.WriteLine(result1 == result2);
    TimeSpan.TryParse(oneHourAndAHalf2, out result1);
    Console.WriteLine(result1 == result2);
    On obtient encore :
    True
    False
    False
    Et as-tu vérifié le type/la valeur en déboguant des éléments de ton DGV ?
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView3.Rows[x].Cells[y].Value

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/06/2014, 16h59
  2. Héritage avec system.timespan
    Par lesultan2007 dans le forum VB.NET
    Réponses: 6
    Dernier message: 07/04/2010, 17h37
  3. Comparator d' object
    Par seddik_saber dans le forum Langage
    Réponses: 2
    Dernier message: 03/06/2008, 11h29
  4. System.DateTime où System.TimeSpan ?
    Par cork1e dans le forum VB.NET
    Réponses: 5
    Dernier message: 31/05/2007, 14h59
  5. récupérer et comparer heure ou date systeme
    Par progamer54 dans le forum C
    Réponses: 3
    Dernier message: 08/04/2006, 11h30

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