Différence entre deux dates heures [Résolu]

achrafchi - 30 sept. 2012 à 12:42 - Dernière réponse :  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
Afficher la suite 

9 réponses

Répondre au sujet
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscriptionModérateurStatut 28 août 2015 Dernière intervention - 30 sept. 2012 à 13:10
+3
Utile
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)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Jack
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 30 sept. 2012 à 13:31
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 30 sept. 2012 à 19:38
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscriptionModérateurStatut 28 août 2015 Dernière intervention - 30 sept. 2012 à 13:27
0
Utile
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)
Commenter la réponse de cs_Jack
0
Utile
merci Jack je vais essayée. si j'arrive a faire ce que tu ma dis ,
Commenter la réponse de achrafchi
0
Utile
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
Commenter la réponse de achrafchi
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 30 sept. 2012 à 19:13
0
Utile
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
Commenter la réponse de ucfoutu
0
Utile
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
Commenter la réponse de achrafchi
0
Utile
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 : ×
Commenter la réponse de Zermelo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.