开发者

how to perform division in timespan [duplicate]

开发者 https://www.devze.com 2023-01-27 04:37 出处:网络
This question already has answers here: What is the best way to divide two TimeSpan objects? (4 answers)
This question already has answers here: What is the best way to divide two TimeSpan objects? (4 answers) Closed 5 years ago. 开发者_如何学Go

I have a value in TimeSpan, let's say: tsp1 = 2 hour 5 minutes. I have another TimeSpan variable which contains a value like: tsp2 = 0 hours 2 minutes

Please tell me how I can divide tsp1 by tsp2 so that I can get the exact number of times tsp2 divides into tsp1 and what the remainder is.

I am using Visual Studio 2008.

Thanks.


The simplest approach is probably just to take their lengths in ticks, and divide those. For example:

long ticks1 = tsp1.Ticks;
long ticks2 = tsp2.Ticks;

long remainder;
long count = Math.DivRem(ticks1, ticks2, out remainder);

TimeSpan remainderSpan = TimeSpan.FromTicks(remainder);

Console.WriteLine("tsp1/tsp2 = {0}, remainder {1}", count, remainderSpan);


a div b:

double adivb = (double)a.Ticks/b.Ticks;

edited:

i found another post on th same topic

How can I achieve a modulus operation with System.TimeSpan values, without looping?


An int will hold enough seconds for ~64 years, so as long as you stay well below that:

int count = (int) (tsp1.t.TotalSeconds / tsp2.t.TotalSeconds);
double remainder = tsp1.t.TotalSeconds - (count * tsp2.t.TotalSeconds);

And maybe convert the remainder to int as well.

0

精彩评论

暂无评论...
验证码 换一张
取 消