たとえば、27:30 (27 時間 30 分) を取り、それを 27.5 のような 10 進数に変換するコードがあります。私は反対の別の機能を持っています。
public class Time
{
public static string Hours(decimal d)
{
return TimeSpan.FromHours((double)(d + 0.005M)).ToString("h\\:mm");
}
public static decimal Hours(string s)
{
decimal r;
if (decimal.TryParse(s, out r))
return r;
return (decimal)TimeSpan.Parse(s).TotalHours + 0.005M;
}
}
問題は、10 進数から文字列への変換が 24 時間にラップするように見えることです。30.0 を指定すると 6:00 になりますが、これは間違っています。30:00のはずです
ラップを回避するにはどうすればよいですか?
ありがとう