Bonjour,
Je voudrais créer un compteur sous la forme : 00m:00j:00h:00min:00s et l'incrémenter au cours du temps.
Pouriez vous me dir quelle fonction utiliser dans vs.net ?
Merci
Version imprimable
Bonjour,
Je voudrais créer un compteur sous la forme : 00m:00j:00h:00min:00s et l'incrémenter au cours du temps.
Pouriez vous me dir quelle fonction utiliser dans vs.net ?
Merci
Pourquoi pas un timer qui s'exécutera toutes les secondes ?
oui j'y avais pensé mais comment créer le compteur avec les mois, jours, minutes et secodes ?
Faire un compteur sous forme de Jours, Heures, Minutes, Secondes écoulés, c'est pas compliqué. L'ennui est le Mois et l'Année... Comment veux-tu te baser sur ces 2 informations en plus ? Les mois n'ont pas le même nombre de jours et les années non plus. A moins que tu décides qu'un Mois vaut 30 jours (d'office l'année vaudra 360 jours). Dans ce cas, tu pourras calculer le Mois et l'Année en fonction du nombre de jours écoulés.
Maintenant, pour calculer le nombre de Jours, Heures, Minutes et Secondes écoulés, rien de plus simple.
Juste avant de lancer ton timer, tu mémorises en global la date/heure courante :
Ensuite, à chaque fois que ton Timer se déclenche (toutes les secondes), il te suffit de faire un petit calcul qui va faire la différence entre le temps courant et le temps que tu as mémorisé au démarrage de ton timer:Code:DateTime debutCompteur = DateTime.Now;
Tu as donc dans l'objet TempsEcoule Seconds, Minutes, Hours et Days résultant de la différence de temps écoulé.Code:TimeSpan TempsEcoule = Datetime.Now - debutCompteur;
merci bcp ca marche deja pour les jours mais effectivement il y a un probleme pour les mois et l'année...
En attendant une solution je me contenterais de cela ! Merci
Bonjour quand je regarde la MSDN sur al fonction DateTime je vois qu'elle a un constructeur qui prend en compte l'année et le Mois.
Une fois que tu fait ta différence entre les deux DateTime cela te renvoie un TimeSpan.
Tu récupère la propriété Ticks de ton TimeSpan que tu passe en argument au constructeur de DateTime et tu récupère l'année et le mois.
Ce code est écrit en C# je ne m'y connaît pas assez pour te l'écrire directement en VB. Je ne l'ai pas testé mais cela devrait marcher.Code:
1
2
3
4
5 DateTime debutCompteur = DateTime.Now; TimeSpan TempsEcoule = Datetime.Now - debutCompteur; DateTime diff = new DateTime(TempsEcoule.Ticks); // D'après la MSDN // Après tu utilise diff.Month et diff.Year
Tient nous au courant,
++ Nexus
Bonjour,
Alors en fait c'est bizarre pour le mois et l'année bah j'ai "1" et pour le reste ca marche :Code:
1
2
3 Dim tpsecoule As TimeSpan = Date.Now - AAA Dim diff As DateTime = New DateTime(tpsecoule.Ticks) Label1.Text = diff.Year & ":" & diff.Month & ":" & diff.Day & ":" & diff.Hour & ":" & diff.Minute & ":" & diff.Second
Je m'explique :
Je récuperer dans le label : "1:1:0:0:0:0" et puis cela s'incrémente bien au cours du temps avec le timer mais la valeur de year et month est égale à 1 au lieu de 0 !!
Thanks
As tu essayé d'initialiser au départ toutes les valeurs à zéro ?
Tu peux faite un DateTime.Add(1/(3600*24)) aussi... Là tu auras la prise en compte du mois et de l'année
j'ai pas compris ton truc avec datetime.add ?
Euh, je pense qu'il existe AddSeconds() aussi maintenant que j'explique le bazar :aie:
oui mais je vois pas le rapport avec le probleme ?
Tu ne peux pas initialiser la date à 0, il n'ya pas un mois 00 et une année 0000Citation:
Envoyé par A&Nexus
C'est normal, le premier mois c'est janvier ==> 01 et la premiere année c'est 0001. Il faut gerer la difference manuellementCitation:
Envoyé par Aspic