hollowman010
Messages postés3Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention19 mai 2010
-
18 mars 2010 à 19:03
hollowman010
Messages postés3Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention19 mai 2010
-
19 mars 2010 à 20:17
Bonjour tous le monde,
Je vous écrie car je rencontre un problème dont je ne trouve aucune solution. Actuellement je possède une base de donnée avec une table XYZ, cette table XYZ possède 2 champs : DateDebut et DateFin. Ces deux champs sont de types Datetime !!! Dans mon code C# je fais tout d'abord une requête qui récupère la différence entre DateDebut et DateFin sous forme de seconde.
Je possède tout d'abord ces 2 fonctions :
public ArrayList TauxUtilisationSystem()
{
String StrReq = "SELECT DATEDIFF(Second,DateDebut,DateFin) FROM XYZ;";
ConnexionSQL();
SQL_Commande = SQL_Connexion.CreateCommand();
SQL_Commande.CommandText = StrReq;
SQL_Reader = SQL_Commande.ExecuteReader();
while (SQL_Reader.Read())
{
DateFinale.Add(SQL_Reader.GetValue(0));
}
SQL_Reader.Close();
DeconnexionSQL();
return DateFinale;
}
public string ConvertirSeconde_Duree(int secS)
{
int[] time = new int[3];
int tempS = secS%3600;
string duree;
time[0]=(secS-tempS)/3600; // Heures
time[1]=tempS%60; // Secondes
time[2]=(tempS-time[1])/60; // Minutes
duree = time[0].ToString() + ":" + time[1].ToString() + ":" + time[2].ToString();
return duree;
}
Donc voilà petit résumé de la situation. La fonction TauxUtilisationSystem() permet de calculer la différence entre DateDebut et DateFin sous forme de seconde. Ma seconde fonction ConvertirSeconde_Duree() à pour but de convertir le résultat retournée par la fonction TauxUtilisationSystem() sous forme HH:MM:SS.
Je voudrais savoir s'il est possible avec des requêtes de trouver la différence entres les 2 dates directement sous forme HH:MM:SS et non sous forme de seconde et par la suite le convertir pour trouver les HH:MM comme je le fais plus haut.
Si ce cas est impossible, alors on doit les convertirent sauf que je rencontre un problème. Ma première fonction retourne un ArrayList. Alors que pour ma 2 ième fonction j'ai besoin d'un paramètre sous forme de " int " sachant que je ne peux pas le convertir donc comment faire ?
Mon but est de trouver un moyen pour calculer la différence entre 2 dates et de l'afficher sous forme HH:MM:SS
Merci de bien vouloir m'aider, car cela fait quelques heures que je passe du temps dessus et j'ai bien l'impression que cela est impossible ...
PS: Je ne met pas mes paramètres de connexions , les intances des objets ... car tout marche bien
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 19 mars 2010 à 09:58
Salut
Utilise la classe TimeSpan, qui représente un intervalle de temps. Les objets TimeSpan possèdent une propriété Hours, une propriété Minutes et une propriété Seconds.
Krimog : while (!(succeed = try())) ; - Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
hollowman010
Messages postés3Date d'inscriptiondimanche 22 mars 2009StatutMembreDernière intervention19 mai 2010 19 mars 2010 à 20:17
Salut
Merci à toi Krimog pour cette information cela va m'aider. Concernant cette classe TimeSpan connais-tu des tutoriels qui utilise cette classe dans un cas similaire au mien ?
Bon je vais te l'avouer je n'ai pas rechercher sur Google pendant 2 jours mais j'ai bien dû y passer 2 ou 3 heures, mais le résultat n'est pas concluant. J'aimerai plus ou moins un modèle à l'aide d'un tutoriel sur internet ( assez complet ) ou voir même un bout de code venant de toi histoire de m'éclaircirent si possible