1

分数の文字列を受け取るので、それを合計所要時間に変換したいと思います。

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

4 に答える 4

4

何も組み込まれていません。

文字列用に独自の解析ルーチンを作成する必要があります。

C#の例:

// assumes input is valid for integer parsing
int totalMinutes = int.Parse(inputString);
int hours = totalMinuts / 60;
int minutes = totalMinutes % 60;
于 2012-05-03T15:00:30.513 に答える
2

TimeSpan.FromMinutesを使用して、そこから時間と分を取得できます。

var span = TimeSpan.FromMinutes(int.Parse(inputString));
var hours = span.Hours;
var minutes = span.Minutes;
于 2012-05-03T15:01:45.660 に答える
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
于 2012-05-03T15:08:59.367 に答える
0

一般的なアルゴリズムは次のとおりです。

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

基本的に、最初の操作で商が得られ、次に 2 番目の操作で剰余/

于 2012-05-03T15:02:30.120 に答える