2016-10-20 12 views
0

計算時間と分をHH:MMの形式で保持するマルチファイルテキストボックスがあります。 私のページの一番下にTimespanを使ってこれらの時間と分を合計するための最終的なテキストボックスが必要ですか?明確にするためASP.Net(c#)のテキストボックス値から時間と分を追加します。

あなたはそれぞれのためのTimeSpan-オブジェクトを持っていると仮定すると

txtTotalTime.Text = txtTimeTaken1.Text + txtTimeTaken2.Text + txtTimeTaken3.Text 

答えて

3

あなたはこのようにするTimeSpanを使用することができます。

TimeSpan timeSpan = TimeSpan.Parse(txtTimeTaken1.Text) + TimeSpan.Parse(txtTimeTaken2.Text) + TimeSpan.Parse(txtTimeTaken3.Text); 
txtTotalTime.Text = string.Format("{0:00}:{1:00}", timeSpan.Hours, timeSpan.Minutes); 

使用TimeSpan.Parseは、それらのすべての合計、タイムスパンの中にあなたの文字列を解析して、HHに戻ってそれらをフォーマットする:MM文字列がthisメソッドを使用して。

0

を(と私は、私は以下の例では、文字列から変換されていない知っているが、これはちょうど私が何をする必要があるかを示すことです)

... 
    TimeSpan total = new TimeSpan(0); 
    total.Add(timeTaken1); 
    total.Add(timeTaken2); 
    total.Add(timeTaken3); 
... 

それとも、他の三つの回が、それらの時間と分のTimeSpanの-オブジェクトを持っていない場合はあなただけ個別に時間と分を追加することができます:あなたはこのような何かを行うことができ、これらの3回の(あなたが明らかにしているように、それらをStringからInteに変換することができますGER):

... 
    TimeSpan total = new TimeSpan(0); 
    total.Hours=hoursTimeTaken1+hoursTimeTaken2+hoursTimeTaken3 
    total.Minutes=minutesTimeTaken1+minutesTimeTaken2+minutesTimeTaken3 
... 
0

合計時間が24時間を超えると、TimeSpanで1日が加算されます。この問題に対処する必要があります。つまり、12時間+ 13時間

public void AddSpans() 
{ 
    textBox1.Text = "12:31"; 
    textBox2.Text = "13:40"; 

    string[] splitArray1 = textBox1.Text.ToString().Split(':'); 
    string[] splitArray2 = textBox2.Text.ToString().Split(':'); 
    int hr1, hr2, m1, m2; 
    if ((int.TryParse(splitArray1[0], out hr1)) && 
     (int.TryParse(splitArray1[1], out m1)) && 
     (int.TryParse(splitArray2[0], out hr2)) && 
     (int.TryParse(splitArray2[1], out m2))) 
    { 
    TimeSpan ts1 = new TimeSpan(hr1, m1, 0); 
    TimeSpan ts2 = new TimeSpan(hr2, m2, 0); 
    TimeSpan ts3 = ts1.Add(ts2); 

    int totHrsFromDays = ts3.Days * 24; 
    textBox3.Text = (totHrsFromDays + ts3.Hours) + ":" + ts3.Minutes; 
    } 
    else 
    { 
    // invalid format HH:MM 
    } 
関連する問題