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#] Calcul sur les dates avec des DateTimePicker


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut [C#] Calcul sur les dates avec des DateTimePicker
    Salut

    J'ai deux dateTimePicker sur une feuille et je souhaite faire la différence des deux pour trouver le nombre de jours qui sépare les deux dates sélectionnées par l'utilisateur.

    Avec C#, les dates sont au format string, j'ai donc essayé de transformer (grâce au transtypage) les dates au format string en format int.

    Mais quand j'essaie de faire le calcul, j'ai une erreur sur le type justement. Ci dessous les quelques lignes qui posent problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      int dateDepart = Convert.ToInt(txt_dateDepart.Text);
      int dateRetour = Convert.ToInt(txt_dateRetour.Text);
      nbJourLocation =  dateRetour - dateDepart;
      prixLocation = prixJour * nbJourLocation;
      txt_prix.Text = ""+prixLocation+"";
    txt_dateDepart.Text et txt_dateRetour.Text sont mes deux dateTimePicker.

    Voilà en résumé mon problème.
    Merci par avance de votre aide

    Alizée

  2. #2
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Il me semble qu'avec le dateTimePicker tu as la date au format DateTime (dans la propriété Value).

    Alors utilise la méthode Substract de DateTime.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut [C#] Calcul sur les dates avec des dateTimePicker
    Comme tu me l'as conseillé, j'ai utilisé la méthode Substract de DateTime.

    Maintenant, un autre problème se pose.

    La soustration des dates contenues dans les dateTimePicker me permet de connaitre le nombre de jour que dure une réservation (de véhicule)

    Maintenant, je dois multiplier ce nombre de jour par le prix d'un jour.

    Voici mon code :

    1 DateTime dateDepart = Convert.ToDateTime(txt_dateDepart.Text);
    2 DateTime dateRetour = Convert.ToDateTime(txt_dateRetour.Text);

    3 prixLocation = prixJour * Convert.ToInt32(dateRetour.Subtract(dateDepart));

    Lorsque je lance le calcul, j'ai une erreur " Specified cast is not valid" à la ligne 3.

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Si prixJour n'est pas de type entier (int), cela pourrait être la cause de l'erreur.
    Idem si prixLocation n'est pas du même type que prixJour.

  5. #5
    Membre habitué
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Points : 132
    Points
    132
    Par défaut Re: [C#] Calcul sur les dates avec des dateTimePicker
    Citation Envoyé par alizee971
    Comme tu me l'as conseillé, j'ai utilisé la méthode Substract de DateTime.

    1 DateTime dateDepart = Convert.ToDateTime(txt_dateDepart.Text);
    2 DateTime dateRetour = Convert.ToDateTime(txt_dateRetour.Text);

    3 prixLocation = prixJour * Convert.ToInt32(dateRetour.Subtract(dateDepart));

    Lorsque je lance le calcul, j'ai une erreur " Specified cast is not valid" à la ligne 3.
    Je ne vois pas dans ton code l'emploi de la méthode Substract. A ta place, je ferais quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    System.DateTime depart = this.dateTimePicker1.Value;
    System.DateTime fin = this.dateTimePicker2.Value;
     
    System.TimeSpan diff = fin.Subtract(depart);
     
    int prixJour = 100;
    int prixLocation = prixJour * diff.Days;

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut Re: [C#] Calcul sur les dates avec des dateTimePicker
    Citation Envoyé par crjo
    Je ne vois pas dans ton code l'emploi de la méthode Substract.
    Sur la ligne 3

    prixLocation = prixJour * Convert.ToInt32(dateRetour.Subtract(dateDepart));

  7. #7
    Membre habitué
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Points : 132
    Points
    132
    Par défaut
    Au temps pour moi

    En fait, c'est normal, l'erreur de type "specified cast not valid" car
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dateRetour.Subtract(dateDepart)
    revoie un objet de type TimeSpan qui indique une durée jour, heure, minute, etc... Ce type d'objet ne peut pas être converti en int car le compilateur ne sait pas si tu veux convertir la durée en nombre de jours ou en nombre de minutes ou en nombre d'heures, etc...

    Je sais pas si c'est clair. Je me comprends de toute manière

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Ce type d'objet ne peut pas être converti en int car le compilateur ne sait pas si tu veux convertir la durée en nombre de jours ou en nombre de minutes ou en nombre d'heures, etc...
    => Ce type d'objet ne peux pas être converti en int car l'opérateur de conversion vers int n'est pas définit pour TimeSpan, simplement

    a+

  9. #9
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Demémoire, je n'ai pas la doc sous les yeux mais il me semble que TimeSpan contient toutes les proriétés pour connaitre le nbr de jour, d'heure, ... que représente le timeSpan.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Citation Envoyé par jab
    Demémoire, je n'ai pas la doc sous les yeux mais il me semble que TimeSpan contient toutes les proriétés pour connaitre le nbr de jour, d'heure, ... que représente le timeSpan.
    Oui, bien sûr :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TimeSpan ts = ...;
    int days = ts.Days;
    int hours = ts.Hours;
    // etc
    a+

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 29
    Points : 21
    Points
    21
    Par défaut [C#] [Résolu] Calcul sur les dates avec des dateTimePicker
    Salut à tous

    Avec le décalage horaire (Guadeloupe-Métropole) je n'ai vu vos réponses qu'il y a quelques minutes. J'ai utilisé vos conseils et finalement, j'ai réussi Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    System.DateTime dateDepart = Convert.ToDateTime(txt_dateDepart.Text);
    System.DateTime dateRetour = Convert.ToDateTime(txt_dateRetour.Text);
    System.TimeSpan nbJour = dateRetour.Subtract(dateDepart);
    int prixJour = ... ; (le prix jour étant déterminé par une boucle switch)	
    int prixLocation = nbJour.Days * prixJour;
    Voilà! donc je vous remercie encore tous les 4 d'avoir prit le temps de m'aider.

    A bientôt!!

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

Discussions similaires

  1. Récupération et calculs sur les dates
    Par romrom1 dans le forum SQL
    Réponses: 16
    Dernier message: 14/12/2007, 09h34
  2. calcul sur les dates
    Par housni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2007, 16h38
  3. Oracle 10g - calcul sur les dates
    Par themateo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/08/2007, 10h50
  4. Calcul sur les dates
    Par Stargate SG1 dans le forum Access
    Réponses: 2
    Dernier message: 04/02/2007, 16h09
  5. [Dates] Calcul sur les dates...
    Par gawelldanor dans le forum Langage
    Réponses: 10
    Dernier message: 04/04/2006, 11h07

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