2017-02-13 17 views
0

私は個別に.Iから得たフォーマット1hとの30分の20secsであり、計算時間を(変換したい時間、分、秒を計算する機能を持っている時のクラスを持っています以下のコードのtoReadableString()メソッド)をHH; MM:SS形式に変換します。私はeg.1stタイムスロットのために(二つの異なるタイムスロットを追加することにより、総継続時間を計算したい、私はいくつかの例を見てきましたが、それは私のproblem.Alsoを解決しない20分の45secsで、第二のタイムスロットが与えるために一緒に追加され1hr30mins15secsです1hr51mins)。どんな助けもありがたいです。事前に感謝しています。HHに時間、分、秒に変換:MM:SS形式

public int getMinutes() 
    { 
     long minutesTotal = (time/1000/60); 

     return (int)minutesTotal % 60; 
    } 


    public int getSeconds() 
    { 
     return (int)(time - (getHours() * 60 * 60 * 1000) - (getMinutes() * 60 * 1000))/1000; 
    } 

    public int getHours() 
    { 
     return (int)(time/1000/60/60); 
    } 
    public String toString() 
    { 
     return "abs_" + Convert.ToString(time); 
    } 

    /** 
    * Convert time to a human readable string. 
    * @return - human readable string. 
    */ 
    public String toReadableString() 
    { 
     if (getHours() == 0 && getMinutes() == 0 && getSeconds() == 0) 
     { 
      if (getTime() > 0) 
      { 
       return getTime() + "ms"; 
      } 
      else 
      { 
       return "zero"; 
      } 
     } 

     String result = ""; 
     if (getHours() != 0) 
     { 
      result += Convert.ToString(getHours()) + "h "; 
     } 
     else 
     { 
      if (getMinutes() == 0) 
      { 
       return Convert.ToString(getSeconds()) + "sec"; 
      } 
     } 
     result += Convert.ToString(getMinutes()) + "m "; 
     result += Convert.ToString(getSeconds()) + "s"; 
     return result; 
    } 
+0

可能重複[:MM:ISO形式YYYY-MM-DD HHにdateTimeの換算C#でSS(http://stackoverflow.com/questions/1912894/convert-datetime-to-iso-format -yyyy-mm-dd-hhmmss-in-c-sharp) – chadnt

+1

時刻、intのデータ型は何ですか? – jjj

+0

の可能性のある重複した[DateTimeオブジェクトを考えると、どのように私は、文字列形式でISO 8601の日付を得るのですか?](http://stackoverflow.com/questions/114983/given-a-datetime-object-how-do-i- – jjj

答えて

2

C#では、TimeSpanを使用してこれらの時間値でMathを実行できます。

var first = new TimeSpan(0, 20, 45); // 20mins 45secs 
var second = new TimeSpan(1, 30, 15); // 2nd time slot is 1hr30mins15secs 
var result = first + second; 

Debug.WriteLine(result.ToString()); 

はこれを試してみてください。

public String toReadableString(TimeSpan ts) 
{ 
    // TODO: Write your function that receives a TimeSpan and generates the desired output string formatted... 
    return ts.ToString(); // 01:51:00 
} 
+1

ありがとうToni.It働いた! – user7274707

関連する問題