将字符串分钟转换为小时

时间:2012-05-03 14:58:47

标签: asp.net

我将收到一串分钟,我想将其转换为花费的总时间。

如果是90分钟,我想将其转换为1小时30分钟。

如果是150分钟,我希望它转换为2小时30分钟。

这是我到目前为止所做的:

DataTable data = GeneralFunctions.GetData( query );
object sumObject;
sumObject = data.Compute( "Sum(Minutes_Spent)", "" );
if ( reportType == 1 )
{
    RepeaterPCBillable.DataSource = data;
    RepeaterPCBillable.DataBind();
    LabelPCBillable.Text = sumObject.ToString();
}
else

我不确定是否有一些内置时间函数可以产生我需要的结果,或者我是否需要进行某种类型的除法。

4 个答案:

答案 0 :(得分:3)

内置任何东西。

您需要为自己的字符串编写自己的解析例程。

C#中的示例:

// assumes input is valid for integer parsing
int totalMinutes = int.Parse(inputString);
int hours = totalMinuts / 60;
int minutes = totalMinutes % 60;

答案 1 :(得分:2)

您可以使用TimeSpan.FromMinutes,然后从中检索小时和分钟。

var span = TimeSpan.FromMinutes(int.Parse(inputString));
var hours = span.Hours;
var minutes = span.Minutes;

答案 2 :(得分:1)

没有任何内置功能,但它并不难做到。让我们一步一步来做。这是我们的示例输入:

var input = "130 minutes";

现在我们使用正则表达式来提取minutes前面的数字:

var match = Regex.Match(input, @"^(\d+) minutes$");
if (!match.Success)
    throw new Exception("Invalid input format");

然后,我们将带有分钟的字符串转换为整数:

var minutes = int.Parse(match.Groups[1].Value);    // now contains 130

接下来,我们使用整数除法和模运算分割小时和分钟:

var hours = minutes / 60;
minutes = minutes % 60;

最后,我们可以将结果格式化为字符串:

var result = String.Format("{0} hours and {1} minutes", hours, minutes);  // 2 hours and 10 minutes

答案 3 :(得分:0)

嗯,这是一个通用的算法:

int hours=string_minutes/60;
int minutes=string_minutes%60;

基本上,第一个操作为您提供商数,然后第二个操作为您提供剩余/