2017-08-29 12 views
-2

の時間にするTimeSpanを追加:は、私は2のDateTimeの持っている唯一の日とない日

DateTime beginDate = 2000/01/01 14:00 

DateTime endDate = 2000/01/01 14:30 

を私はこれらの2時間の間のタイムスパンを計算します。

TimeSpan span = endDate.Subtract(beginDate); 
var myValue = beginDate.AddMinutes(span.Minutes).TimeOfDay.Ticks 

//Trying to get this equal to the endDate by using the beginDate + myValue 
//I have to use myvalue, because this value comes from the DB and this piece 
//of code sits in another class than the above code 
DateTime otherDate = beginDate.Date.Add(new TimeSpan(myValue)) 

問題は、私は0を取得し続けるです。私は戻ってくる必要があります。 なぜ私はbeginDate.Dateが2000/01/01 00:00を返すのか理解していますが、readonlyフィールドであるためbeginDate.TimeOfDay.Addを使用できません。 myValueを指定された日付の時刻に追加するだけであることをどのように達成するのですか?

+0

あなたは何をしようとしているのか、なぜあなたは非常に多くのフープを飛び越えているのかは不明です。 – Rotem

+0

beginDateとmyValueを使用して、endDateと同じ結果を計算して取得します。 – user1702369

+0

'myValue'が表すものが不明です。 'beginDate' +' myValue'が 'endDate'に等しくなければならないすべての論理によって、' myValue'は 'span'と等しくなければなりません。なぜすべての '.TimeOfDay'、' .Date'、 '.Minutes'、' .Ticks'の混乱?データベースに保存するために 'TimeSpan'を直列化しようとしているだけの場合は、' .Ticks'プロパティーを使用してください。 – Rotem

答えて

2

TimeSpan.TotalMinutesを使用してください。

span.Minutesは、分の部分のみを示します。したがって、1:30は90ではありません。30になります。 TotalMinutesを使用して90を取得してください。

beginDateDateを使用すると、時間が削除されるため、beginDate.DatebeginDateに変更する必要があります。

1
DateTime otherDate = beginDate + span; 
+0

私はmyValueとbeginDateを使って計算する必要があります。私は自分の投稿を更新しました。そのため、私はDBにmyValueとbeginDateを保存するので、後の段階で別のクラスでDBからこれらの2つのフィールドを取得し、それらを使用してendDateに戻る必要があります – user1702369

関連する問題