Reputation: 581
How do I subtract two DateTime values from another DateTime value and have the result saved to a double?
Upvotes: 38
Views: 107506
Reputation: 2763
DateTime startTime = DateTime.Now;
DateTime endTime = DateTime.Now.AddSeconds( 75 );
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (seconds): " + span.TotalSeconds );
Console.WriteLine( "Time Difference (minutes): " + span.TotalMinutes );
Console.WriteLine( "Time Difference (hours): " + span.TotalHours );
Console.WriteLine( "Time Difference (days): " + span.TotalDays );
Upvotes: 27
Reputation: 2512
var Date1 = new DateTime(2018, 12, 15);
var Date2 = new DateTime(2019, 1, 1);
TimeSpan result1 = Date2.Subtract(Date1);
Console.WriteLine(result1);
//To calculate difference between two dates use TotalDays() method
double result2 = Date2.Subtract(Date1).TotalDays;
Console.WriteLine(result2);
//Output:
17.00:00:00
17
Upvotes: 1
Reputation: 6986
In .NET, if you subtract one DateTime
object from another, you will get a TimeSpan
object. You can then use the Ticks
property on that TimeSpan
object to get the number of ticks between the two DateTime
objects. However, the ticks will be represented by a Long
, not a Double
.
DateTime date1;
DateTime date2;
Long diffTicks = (date2 - date1).Ticks;
There are other interesting properties on the TimeSpan
object like TotalMilliseconds
and TotalMinutes
and things like that which can help you out, and may be more what you are looking for.
Upvotes: 44
Reputation: 38210
I am not sure what is you want to store if you need a double
double difference = date2.ToOADate() - date1.ToOADate();
Upvotes: 0
Reputation: 930
Use DateTime.Subtract which will return TimeSpan , then use TotalSeconds property of the result which is of type double.
Upvotes: 2
Reputation: 10872
You should try in this.
DateTime prevDate = DateTime.Parse("25-Feb-2011 12:30");
double subDouble = DateTime.Now.Ticks - prevDate.Ticks;
Upvotes: 0
Reputation: 17498
I think this is what you need.
DateTime d1 = DateTime.Now;
DateTime d2 = DateTime.UtcNow;
var result = d1 - d2;
double dResult = result.Ticks;
Upvotes: 4