我将收到一串分钟,我想将其转换为花费的总时间。
如果是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
我不确定是否有一些内置时间函数可以产生我需要的结果,或者我是否需要进行某种类型的除法。
答案 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;
基本上,第一个操作为您提供商数,然后第二个操作为您提供剩余/