In my output of a grid, I calculate a TimeSpan
and take its TotalHours
. e.g.
(Eval(\"WorkedHours\") - Eval(\"BadgedHours\")).TotalH
static string ToHMString(TimeSpan timespan) {
if (timespan.Ticks < 0) return "-" + ToHMString(timespan.Negate());
return timespan.TotalHours.ToString("#0") + ":" + timespan.Minutes.ToString("00");
}
Console.WriteLine(ToHMString(TimeSpan.FromHours(3))); //Prints "3:00"
Console.WriteLine(ToHMString(TimeSpan.FromHours(-27.75))); //Prints "-28:45"
This will also work correctly if the timespan is longer than 24 hours.