Convertir le format"tickcount" en HH : MM : SS

Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010 - 12 oct. 2009 à 13:55
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 - 15 oct. 2009 à 17:08
bonjour,

je m'essaye à un domaine que je n'ai jamais vraiment utilisé jusqu'ici : le temps qui passe en .NET.
mon besoin : afficher dans un label le temps écoulé depuis l'allumage de mon PC
je commence juste avec le code suivant que j'ai mis dans un timer. deja je fais peut etre completement fausse route .. (??)
mon probleme : le format de temps affiché est inutilisable et je suis plus que nul dans les conversions !
pouvez m'aider à afficher le resultat en HH:MM:SS svp ?

merci d'avance

Dim date1 As New System.DateTime(My.Computer.Clock.TickCount)
Dim date2 As New System.DateTime
Dim temps As TimeSpan = date2.Subtract(date1)
Me.Label1.Text = temps.ToString

_____________
 (débutant inside)

10 réponses

jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
12 oct. 2009 à 14:27
Bonjour,

La question serait-elle finalement : comment convertir en heures, minutes et secondes un nombre de millisecondes ?
Si oui : par un seimple calcul arithmétique !
Nota : si c'est pour ignorer les millisecondes, on peut se demander pourquoi les calculer !
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
12 oct. 2009 à 15:10
scuse moi mais comprend pas bien le "nota"

ma question c'est d'abord
est ce que je mis prend bien pour calculer le temps qui s'est écoule depuis que mon PC est allumé ?
ensuite, si oui, comment faire au plus simple pour l'afficher dans un format lisible type HH:MM:SS (qui défilent)

par exemple ya t'il plus simple que de passer par un resultat en milliseconde à convertir ?
si la réponse est non je n'est effectivement plus qu'a me lancer dans un "simple calcul arithmétique"...

_____________
 (débutant inside)
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
12 oct. 2009 à 17:00
Mon nota est pourtant clair : Mesurer une durée en millisecondes pour ne pas aller au delà d'une précision en secondes est abusif.
Il y a quand-même des manières plus simples de calculer une durée en secondes (les fonctions ne manquent pas pour ce faire)
pour afficher ensuite selon ton format (jj:mm:ss) : rien de plus simple ===>> il suffit d'ajouter à l'heure 00:00:00 le nombre de secondes de la durée ! (et ça, c'est élémentaire).
0
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
12 oct. 2009 à 20:06
Salut
A vérifier, mais il me semble que le TickCount renvoie le nombre de millisecondes écoulées depuis minuit, et pas depuis le démarrage de la session/machine.

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)
0

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

Posez votre question
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
13 oct. 2009 à 09:12
bonjour,

jmf0 :
effectivement je souhaiterai m'arreter à un resultat "jour : heure: minute : seconde" !
qu'il y est d'autres méthodes utilisables que le tickcount qui renvoie une réponse en milliseconde pour ça, ok,
mais c'est bien pour ça que je poste ici, pour qu'on m'aide à les connaitre si je mis prend mal avec mon exemple...
pas juste pour me faire rembarrer...

"les fonctions ne manquent pas pour ce faire" > super ! mais si je post dans la rubrique "débutant",
c'est pas sans raisons hein !

jack : effectivement c'est utilise de verifier ça ... google est mon ami...


_____________
 (débutant inside)
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
13 oct. 2009 à 09:46
Re...

Débutant en VB.Net, nous dis-tu ?
Mais... tu es mille fois plus avancé que moi, aloirs (je n'ai jamais développé sous VB.Net, que je ne connais pas du tout.
Tu viens ici pour connaître une fonction ? Et ton aide en ligne (MSDN) alors ? Elle sert à quoi selon toi ?
Y chercher est difficile ? Y compris avec le mot Time, Timer, etc... (ils ne te viennent pas sous le sens, non ?)
Tiens, l'ignorant complet en VB.Net que je suis, sait au moins trouver ta réponse (relevé d'une durée) en 2 coups de cuillère à pot :
http://www.vb-helper.com/howto_net_measure_elapsed_time.html
(parmi des centaines de liens de l'espèce)
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
13 oct. 2009 à 10:17
on va pas faire un concours de celui qui a la plus grosse non plus ?
moi je n'ai jamais rien utilisé d'autre que le .NET depuis que je m'essaye à developper des petits trucs,
quand au MSDN j'avoue que c'est plutot google (ou ici...) que j'utilise en 1er.
sinon, t'as les vers ?

merci pour le lien.
_____________
 (débutant inside)
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
13 oct. 2009 à 11:03
quand au MSDN j'avoue que c'est plutot google (ou ici...) que j'utilise en 1er.
sinon, t'as les vers ?


Ah !

Non, je n'ai pas les vers, non ...
Mais toi, ami, tu as les règles (de ce forum, à lire)
0
Tyrell2 Messages postés 251 Date d'inscription samedi 19 novembre 2005 Statut Membre Dernière intervention 2 novembre 2010
13 oct. 2009 à 13:47
Rebonjour à tous,

pour info si d'autres sont intéressés par la question ,

voici une solution finalement très simple (quand on la connait)
pour afficher dans un label le temps ecoulé depuis l'allumage du PC :

à coller dans un timer :

Dim HH As New TimeSpan(0, 0, 0, 0, Environment.TickCount)
Dim jours As String = HH.Days
Dim heures As String = HH.Hours
Dim minutes As String = HH.Minutes
Dim secondes As String = HH.Seconds
Me.Label1.Text = jours & " Jour(s) " & heures & " Heure(s) " & minutes & " min " & secondes & " sec"

salut !

_____________
 (débutant inside)
0
cs_Ayr Messages postés 221 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 13 décembre 2009 2
15 oct. 2009 à 17:08
Bonjour Tyrell,

Tu as, parmis les méandres des classes .Net, une classe System.Environment qui possède une propriété TickCount qui pourrait éventuellement t'être utile. C'est un entier signé 32 bits contenant la durée écoulée en millisecondes depuis le dernier démarrage de l'ordinateur. Limitation due au type entier 32 bits, elle se ré-initialise au bout de 24,9 jours.

A voir --> La Classe System.Environment sur MSDN

A+
0
Rejoignez-nous