Arif Eqbal によって投稿されたコメント付きコードは、以下の TimeSpan を DateTime に変換します
上記の問題は、変換が TimeSpan で指定された誤った日数を返すことです。上記を使用すると、以下は指定された 2 ではなく 3 を返します。分と秒は保持されます。~~ TimeSpan 引数で 2 日を保持し、DateTime 日として返す方法についてのアイデアはありますか?
この変換の 2 つ目の問題は、TimeSpan の時間に日単位の時間を追加し、DateTime 時間として返したい場合、たとえば Format = "hh:mm" または 49:30 の場合、追加する方法がないことです。 DateTime オブジェクトで一緒に時間。基本的に、TimeSpan.TotalHours を DateTime オブジェクトの Hours コンポーネントに変換したいと考えています。これには文字列変換が必要になる可能性が高いことは理解していますが、.Net 3.5 には洗練されたソリューションがないようです。残念ながら、私は 4.0 または 4.5 からのコンバーターの贅沢を持っていません。
public void test()
{
// Arif Eqbal
//DateTime dt = new DateTime(2012, 01, 01);
//TimeSpan ts = new TimeSpan(1, 0, 0, 0, 0);
//dt = dt + ts;
_ts = new TimeSpan(2, 1, 30, 10);`
var format = "dd";
var returnedVal = _ts.ToString(format);
Assert.That(returnedVal, Is.EqualTo("2")); //returns 3 not 2
}
ありがとう - グレン