2014-05-22 3 views
0

Je souhaite créer une minuterie pour mon projet C#. Ma pensée de la façon dont je ferais ceci est simplement d'obtenir l'heure locale au début du programme et l'enregistrer dans une variable. Ensuite, lorsque le programme est terminé ou fermé, le programme vérifie à nouveau l'heure actuelle et l'enregistre dans une autre variable. Ensuite, prenez le nouveau temps soustrait avec la première fois et enregistrez-le dans une troisième variable. Ensuite, il afficherait la variable et montrer l'heure que vous avez été dans le programme en quelques secondes.Mesure du temps d'exécution du programme

+0

Side note: éviter de nouvelles ici/merci notes vos publications. Aussi "timer" en C#/programmation est généralement l'entité qui déclenche les événements en fonction du temps passé, je pense que vous voulez "mesurer le temps" (j'ai changé de titre, n'hésitez pas à modifier/revenir si cela ne correspond pas à vos intentions). –

Répondre

3

Pour calculer avec précision le temps, vous pouvez utiliser la classe Stopwatch:

var stopwatch = Stopwatch.StartNew(); 
// ... time goes by 
var elapsed = stopwatch.Elapsed; 

La elapsed variable contient un TimeSpan avec le temps écoulé entre les deux appels. Cette minuterie est très précise. Si la milliseconde n'a pas d'importance, vous pouvez simplement soustraire deux valeurs au lieu DateTime:

var start = DateTime.UtcNow; 
// ... time goes by 
var end = DateTime.UtcNow; 
var elapsed = end - start; 

En utilisant UTC fonctionne mieux et vous ne devez pas prendre l'heure d'été en considération.

+0

Okay. Pourriez-vous expliquer comment j'utilise cette classe? – Easterlily

+0

1: Utilisez google "chronomètre classe" ou suivez le lien. 2: lire la documentation. – TomTom

+0

Cela a fonctionné. Merci pour l'aide! – Easterlily

1

Soit utiliser un chronomètre,

ou utiliser DateTimes et Soustraire

A l'ouverture

var startTime = DateTime.Now;//first variable 

à la clôture

var endTime = Datetime.Now;//second variable 
var elapsedSeconds = endtime.Subtract(startTime).TotalSeconds;//third variable 
Questions connexes