Forum Clubic

Calcul sur les dates avec c#

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 :

	int dateDepart = Convert.ToInt(txt_dateDepart.Text);
	int dateRetour = Convert.ToInt(txt_dateRetour.Text);
	nbJourLocation =  dateRetour - dateDepart;
	prixLocation = prixJour * nbJourLocation;
	txt_prix.Text = ""+prixLocation+"";	

:arrow: 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

Je suis pas spécialiste du C#, mais à mon avis ton type dateTimePicker doit avoir une fonction qui soit renvoie un INT, soit qui fait la différence…

au pire t’as cas faire un Cast en Date et la tu peux manipuler comme tu veux tes resultats :wink:

mais jamais utilisé les timepicker donc je peux pas t’aider plus…

[:kylie] èlo èli thé aaaaaaaah… :stuck_out_tongue:

+1 tout pareil que Cyber Nouille

Yop

Le mieux que tu ai a faire c’est d’utiliser DateTime.Parse si tu dit
que c’est du string en entrée, cela va te transformer ta date en
dateTime et la apres c’est facile d’avoir une difference de jours :

[cpp]
// date1 et date2 seront pour toi le resultat du parsage
System.DateTime date1 = new System.DateTime(2005,1, 1);
System.DateTime date2 = new System.DateTime(2005,2, 2);

System.TimeSpan diff = date2.Subtract(date1);

Console.WriteLine("diff jours : " + diff.Days);
[/cpp]

En esperant avoir répondu a ta question

PS: il existe aussi un soft pour ça :

http://www.sellsbrothers.com/tools/#FormatDesigner

@++ pthichat

Jamais fait gaffe à DateTime.Parse
Perso j’utilise System.Convert.ToDateTime(StringDate) qui marche bien. J’imagine qu’il utilise les parametres locaux des dates pour convertir correctement la date passé sous forme de string. Pas verfié (suis pas au boulot la :wink: ) mais j’imagine que DateTime.Parse doit fournir plus d’options.