時間を日、時間、分に変換しようとしています。小数をDDに変換してください。HH:MM
これはこれまで私がこれまで持っていたものですが、それほどまだありません。それが理にかなっているなら、時間の部分から日数を差し引く必要がありますか?
/// <summary>
/// Converts from a decimal value to DD:HH:MM
/// </summary>
/// <param name="dHours">The total number of hours</param>
/// <returns>DD:HH:MM string</returns>
public static string ConvertFromDecimalToDDHHMM(decimal dHours)
{
try
{
decimal hours = Math.Floor(dHours); //take integral part
decimal minutes = (dHours - hours) * 60.0M; //multiply fractional part with 60
int D = (int)Math.Floor(dHours/24);
int H = (int)Math.Floor(hours);
int M = (int)Math.Floor(minutes);
//int S = (int)Math.Floor(seconds); //add if you want seconds
string timeFormat = String.Format("{0:00}:{1:00}:{2:00}", D, H, M);
return timeFormat;
}
catch (Exception)
{
throw;
}
}
SOLUTION:
/// <summary>
/// Converts from a decimal value to DD:HH:MM
/// </summary>
/// <param name="dHours">The total number of hours</param>
/// <returns>DD:HH:MM string</returns>
public static string ConvertFromDecimalToDDHHMM(decimal dHours)
{
try
{
decimal hours = Math.Floor(dHours); //take integral part
decimal minutes = (dHours - hours) * 60.0M; //multiply fractional part with 60
int D = (int)Math.Floor(dHours/24);
int H = (int)Math.Floor(hours - (D * 24));
int M = (int)Math.Floor(minutes);
//int S = (int)Math.Floor(seconds); //add if you want seconds
string timeFormat = String.Format("{0:00}:{1:00}:{2:00}", D, H, M);
return timeFormat;
}
catch (Exception)
{
throw;
}
}
ありがとう、私のソリューションよりもはるかに少ない仕事。 – WraithNath
十進数から二重への変換が問題を引き起こす状況があるのだろうか?それはあるかもしれないと感じている(例えば、あなたが予想していたよりも少ない分で終わるかもしれない)が、それは確かに簡単なアプローチだ。 –
私が見た!コメントは削除されました:-)。ニースの答え(私たちはすべて同時に答えた)。あなたはまだ私の+1を持っています。 –