How do I convert a TimeSpan
value to a double
in C#?
I mean I have this -08:15:00
and I want a double -08.15
.
How do I convert a TimeSpan
value to a double
in C#?
I mean I have this -08:15:00
and I want a double -08.15
.
Despite how ambiguous this question is, for future reference, Umar was probably the closest to answering the question, as it was displayed in the title.
To get a double
from a TimeSpan
object, you need to pick the most significant measurement, and get the total. As the Total<x>
property, will return the appropriate full value, and the fractions of that value as a decimal.
So, if you want 8:15:00
, to a double
- and the "8"
represents Hours
, then you'll want TimeSpan.TotalHours
which will result in a value of 8.25.
If the "8"
represents Minutes
, then again, you'll use the appropriate property TimeSpan.TotalMinutes
for the same result, and so on.
You could use TimeSpan.TotalMinutes
(gets the value of the current TimeSpan
structure expressed in whole and fractional minutes) or other similar properties.
Do not repeat this at home!
double value = (timeSpan.Hours + timeSpan.Minutes / 100.0 + timeSpan.Seconds / 10000.0) * (timeSpan > TimeSpan.Zero ? 1 : -1);
Hours
, actually –
Lusterware (timeSpan.Hours + timeSpan.Minutes / 60.0 + timeSpan.Seconds / 3600.0) * (timeSpan > TimeSpan.Zero ? 1 : -1);
–
Dialyze In the case of operations with DateTime
in its double
format obtained with .ToOADate()
, TimeSpan
must be converted to double
directly with .TotalDays
since the unit (1.0) for DateTime
is a day.
With a functional mindset:
public static class Extension
{
public static double ToDouble(this TimeSpan o) => o.TotalDays;
}
You can use string.format, then parse it like this:
double.Parse(string.Format("-HH.mm"))
© 2022 - 2024 — McMap. All rights reserved.