2017-02-19 1 views
0
TimeSpan ts = DateTime.Now.Subtract(DateTime.Parse(reader1["cur_time"].ToString())); 
int a = ts.Minutes; 
MessageBox.Show(a.ToString()); 
MessageBox.Show(ts.Milliseconds.ToString()); 

En soustrayant temps il me donne 8 minutes, ce qui est correct. mais converti ces 8 minutes en millisecondes ne donne pas une réponse correcte. Si je convertis 8 minutes en millisecondes cela devrait être 480000 millisecondes mais le code ci-dessus me donne 708 réponses.résultats inattendus de timespan en C#

+6

Utilisez 'ts.TotalMilliseconds' à la place. Vous obtenez la partie fractionnaire du temps, pas le temps représenté en millisecondes. Vous devriez aussi utiliser 'ts.TotalMinutes'. –

+0

merci beaucoup ça fonctionne. –

Répondre

6

Vous lisez la partie en millisecondes du TimeSpan et non le nombre total de millisecondes représenté par l'intervalle.

changement

ts.Milliseconds.ToString(); 

à

ts.TotalMilliseconds.ToString(); 

Il pourrait inclure quelques millisecondes supplémentaires en fonction de ce que DateTime.Now est et le CUR_TIME analysé.

+0

merci ça marche –