将浮点数转换为时间跨度

Ice*_*ind 21 c# datetime timespan

是否有一种简单的方法来获取float表示小时数的值并将它们转换为TimeSpan对象,反之亦然?例如:

float oneAndAHalfHours = 1.5f;
float twoHours = 2f;
float threeHoursAndFifteenMinutes = 3.25f;
float oneDayAndTwoHoursAndFortyFiveMinutes = 26.75f;

TimeSpan myTimeSpan = ConvertToTimeSpan(oneAndAHalfHours); // Should return a TimeSpan Object
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Chr*_*isF 48

你想要这个FromHours方法.

这需要一个double(而不是float)并返回一个TimeSpan:

double hours = 1.5;
TimeSpan interval = TimeSpan.FromHours(hours);
Run Code Online (Sandbox Code Playgroud)

要获得TimeSpan使用该TotalHours物业的总小时数:

TimeSpan interval = new TimeSpan(1, 15, 42, 45, 750);
double hours = interval.TotalHours;
Run Code Online (Sandbox Code Playgroud)


Ed *_* S. 12

所以,你正在寻找...... TimeSpan.FromHours(双倍)

文档是你的朋友.

  • 这个命名方案真的很疯狂.所以无法发现.谁曾想过,如果我想从**小时*创建一个'TimeSpan`*,那就是'TimeSpan.FromHours`会做什么? (8认同)