Handle negative time spans

前端 未结 9 585
不知归路
不知归路 2020-12-30 18:50

In my output of a grid, I calculate a TimeSpan and take its TotalHours. e.g.

(Eval(\"WorkedHours\") - Eval(\"BadgedHours\")).TotalH         


        
9条回答
  •  -上瘾入骨i
    2020-12-30 19:37

    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.

提交回复
热议问题