Ho un codice che genera un intervallo di tempo per calcolare una durata di qualche azione. Quello che voglio fare è prendere quel risultato (la durata) e dividerlo per un numero, qualsiasi numero.Divisione di tempo per un numero
Come posso farlo?
Ho un codice che genera un intervallo di tempo per calcolare una durata di qualche azione. Quello che voglio fare è prendere quel risultato (la durata) e dividerlo per un numero, qualsiasi numero.Divisione di tempo per un numero
Come posso farlo?
Utilizzare una delle proprietà Total*
di TimeSpan
che sono numeri.
I.e. se si sta eseguendo cinque iterazioni del codice, che si misura, quindi è possibile utilizzare
myTimeSpan.TotalMilliseconds/5
per ottenere il numero medio di millisecondi per iterazione. È possibile utilizzare Ticks
per ottenere il valore sottostante e creare un nuovo TimeSpan
dal risultato diviso.
Totalmente, uomo !!! – Oded
TimeSpan ts = ...
TimeSpan result = TimeSpan.FromTicks(ts.Ticks/divisor);
È possibile utilizzare le zecche del periodo originale:
var res = new TimeSpan(origSpan.Ticks/aNumberAnyNumber);
Fare l'upvoting perché è la prima risposta di divisione intera, che, quando disponibile, è quasi sempre una scelta migliore. – Ekevoo
Per tutti gli sviluppatori VB.NET che si imbattono in questa risposta utile: l'operatore di divisione è una divisione _integer_, quindi utilizzare l'operatore \ VB (backslash) per evitare un errore _Option Strict On non consente la conversione implicita da "Double" a "Long" _. –
dipende da ciò che si vuole dividere, ma diciamo che si desidera secondi, è possibile utilizzare la proprietà totalseconds.
TimeSpan ts = new TimeSpan(4, 0, 0); //Four hours
MessageBox.Show((ts.TotalSeconds/4).ToString());
Se si vuole finire con un nuovo TimeSpan che è una frazione del vecchio:
TimeSpan now = DateTime.Now.TimeOfDay;
TimeSpan halfOfNow = new TimeSpan(now.Ticks/2);
ho provato la fusione, ma il compilatore restituisce un errore. Se ottengo un risultato di 0,0000000004, voglio dividere quel numero, diciamo, in 4. Questo è solo un esempio. – Novak
possibile duplicato di [Multiply TimeSpan in .NET] (http://stackoverflow.com/questions/9909086/multiply-timespan-in-net) –