Différence entre deux dates heures

Résolu
achrafchi - 30 sept. 2012 à 12:42
 Zermelo - 30 sept. 2012 à 22:51
bonjour
Comment puis-je calculer la différence entre deux date en année, mois, jour , heures, minute, seconde.
la fonction 'Datediff' donne la différence en année, mois ou jour et non pas tous à la fois
par exemple la différence entre '10/29/2012 11:17:42 PM ET 09/30/2012 09:31:05 AM' comment le trouver.
merci d’avance

9 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 sept. 2012 à 13:10
Salut

Il faut pratiquer comme pour une décomposition binaire d'un chiffre :
En binaire, si tu dois décomposer les puissances de 2 du chiffre 10, en commençant par la plus grande puissance , par exemple, tu fais :
- Chiffre initial 10 LeChiffrre
- Est-ce que 16, 2 puissance 4, est compris dans mon chiffre ?
C'est à dire, est-ce que 10 - 16 >= 0 ?
Non : alors 0 fois ce bit
- Est-ce que 8, 2 puissance 3, est compris dans mon chiffre ?
C'est à dire, est-ce que 10 - 8 >= 0 ?
Oui : alors 1 fois ce bit ET on le retranche de notre chiffre :
LeChiffre - LeChiffre - 8, c'est à dire 2
- Est-ce que 4, 2 puissance 2, est compris dans mon chiffre ?
C'est à dire, est-ce que 2 - 4 >= 0 ?
Non : alors 0 fois ce bit
- Est-ce que 2, 2 puissance 1, est compris dans mon chiffre ?
C'est à dire, est-ce que 2 - 2 >= 0 ?
Oui : alors 1 fois ce bit ET on le retranche de notre chiffre :
LeChiffre - LeChiffre - 2, c'est à dire 0
- Est-ce que 1, 2 puissance 0, est compris dans mon chiffre ?
C'est à dire, est-ce que 0 - 1 >= 0 ?
Non : alors 0 fois ce bit

--> Le résultat donne donc : 01010 (16 ... 0)

Pour les dates, c'est pareil :
# Calcule le nombre d'années entre tes 2 dates.
Si ce nombre est supérieur à 1 :
- Mémorise ce chiffre
- Retranche à la plus grosse des 2 dates ce nombre d'années entières (avec DateAdd cette fois).
# Calcule le nombre de mois entre tes 2 dates.
Si ce nombre est supérieur à 1 :
- Mémorise ce chiffre
- Retranche à la plus grosse des 2 dates ce nombre de mois entiers.
# Calcule le nombre de jours entre tes 2 dates.
Si ce nombre est supérieur à 1 :
- Mémorise ce chiffre
- Retranche à la plus grosse des 2 dates ce nombre de jours entiers.
# Calcule le nombre d'heures entre tes 2 dates.
Si ce nombre est supérieur à 1 :
- Mémorise ce chiffre
- Retranche à la plus grosse des 2 dates ce nombre d'heures entières.
# Calcule le nombre de minutes entre tes 2 dates.
Si ce nombre est supérieur à 1 :
- Mémorise ce chiffre
- Retranche à la plus grosse des 2 dates ce nombre de minutes entières.
# Calcule le nombre de secondes entre tes 2 dates.
Si ce nombre est supérieur à 1 :
- Mémorise ce chiffre
- Retranche à la plus grosse des 2 dates ce nombre de secondes entières.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 sept. 2012 à 13:31
Bonjour,
Calculer une différence entre deux dates/heures est assez simple (arithmétique simple) si l'on se limite à un nombre de jours, heures,minutes, secondes.
Si l'on veut aller au-delà (années, mois), c'est une autre affaire puisque, dans ce cas, on arrive )à des notions calendaires.
L'âge en années, mois, jours, heures, minutes et secondes ne se calcule donc certes pas simplement, comme le serait simplement un calcul fait pour trouver la durée écoulée en jours, heures, minutes et secondes.
En cherchant sur ce forum (cherche d'abord), tu trouveras comment inclure les notions calendaires (calcul de l'âge).
Ne reviens que si tu n'as rien trouvé dans ce sens. Je ne te montrerai qu'alors comment faire.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 sept. 2012 à 19:38
autre question = autre discussion, s'il te plait !

Comprends une chose : ce n'est pas ton appli, que nous traitons, mais une difficulté technique que tu rencontrerais, spécifique et parfaitement isolée.
La présente discussion concerne le calcul de
la différence entre deux date en année, mois, jour , heures, minute, seconde.

et non le traitement d'une chaîne de caractères pour en extraire ce qui t'intéresse.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 sept. 2012 à 13:27
PS : Il y a surement des tas de sources sur le site qui parlent de ce genre de calcul, en cherchant par exemple "calcul dates" parmi les sources (sauf .Net)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
merci Jack je vais essayée. si j'arrive a faire ce que tu ma dis ,
0
Salut j'ai cherche par tous j'ai pas trouver un moyen pour séparer l heure du date. j'ai la valeur suivant dans un Text1.text"Sun Sep 30 16:31:58 UTC 2012"
et je veux récupéré dans text2.text "16:31:58"
j'ai essayée text2.text = timevalue(text1.text) mais ca marche pas
est ce que quelqu’un un peut m'aide
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 sept. 2012 à 19:13
Aucun rapport avec la question ayant fait l'objet de la présente discussion !
Cette nouvelle question se résout par un traitement de chaine de caractère pour extraire ton heure de ""Sun Sep 30 16:31:58 UTC 2012"
on peut se demander d'ailleurs comment cette chaine de caractères est arrivée dans une textbox.
Si "récoltée" ailleurs : on peut se demander également pourquoi passer par un contrôle et non une simple variable !
De toutes manières : autre question = autre discussion, s'il te plait !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
dsl
c'est lorsque j'ai voulu résoudre la première question que je me suit bloque sur la 2eme question, cette chaîne de caractères je l'ai récupéré d'un contrôle dune page web parcque j'ai besoin de calculer la déférence entre l heure du server de la page web avec heure chez moi
Text1.Text = Browser.Document.getElementById("currenttimee").innerHTML
la valeur donner Sun Sep 30 16:31:58 UTC 2012
merci
0
Bonjour achrafchi.

Je crains fort que votre question, telle qu'elle est posée, soit dépourvue de sens, et voici pourquoi.
Une date désigne un instant déterminé, exprimé dans des unités dont certaines (mois, année) sont variables. Cela n'empêche d'ailleurs pas la précision, même si le calendrier grégorien est une usine à gaz.
Par contre une différence de dates n'est pas une date, mais une durée. Elle ne peut donc être représentée que par un nombre, avec des unités fixes (secondes, minutes, heures, jours, par exemple.

Cordialement.



Étant illettré, je signe d'une croix : ×
0
Rejoignez-nous