データベースから2つの日時値を取得しています。値が取得されたら、2つの値の違いが必要です。そのために、2つの日付値の差を格納するためのtimespan変数を作成します。
TimeSpan? variable = datevalue1 - datevalue2;
今、私は時間数の面でTimespan変数に格納されている違いを示す必要があります。私は TimeSpan.TotalHours を参照しましたが、何らかの理由で同じことを適用できませんでした。それ、どうやったら出来るの? MVCプロジェクトでC#を使用しています。差分値を時間単位で表示するだけでいいのですか。
編集:timespanがnull許容値だったので、私はtotal hoursプロパティを使用できませんでした。これで、TimeSpanVal.Value.TotalHoursを実行して使用できます。
TimeSpan
name__を宣言していないので混乱していると思います。TimeSpan?
は NULL可能TimeSpan
name__です。 NULL可能にする必要がない場合は疑問符を削除するか、variable.Value.TotalHours
を使用してください。
また見たいと思うかもしれません
var hours = (datevalue1 - datevalue2).TotalHours;
サンプルでは、2つのdatetimeオブジェクトを作成しています。1つは現在時刻、もう1つは現在時刻に75秒を追加したものです。次に、2番目のDateTimeオブジェクトでメソッド.Subtract()を呼び出します。これはTimeSpanオブジェクトを返します。 TimeSpanオブジェクトを取得したら、TimeSpanのプロパティを使用して実際の時間、分、秒を取得できます。
DateTime startTime = DateTime.Now;
DateTime endTime = DateTime.Now.AddSeconds( 75 );
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Console.WriteLine( "Time Difference (hours): " + span.Hours );
Console.WriteLine( "Time Difference (days): " + span.Days );
結果:
時差(秒):15時差(分):1時差(時):0時差(日):0
Nullable
を使っている理由はありますか?
Nullable
を使いたい場合は、variable.Value.TotalHours
と書くことができます。
あるいは(datevalue1 - datevalue2).TotalHours
と書くこともできます。
これは、C#の2つの日付を減算する別の例です。
if ( DateTime.Now.Subtract(Convert.ToDateTime(objDateValueFromDatabase.CreatedOn)).TotalHours > 24 )
{
...
}
従業員が時間やその他の精度要件を支払うためのより正確な方法::
decimal DeterminePreciseHours(DateTime startTimestamp, DateTime stopTimestamp)
{
var span = (stopTimestamp - startTimestamp).Value;
decimal total = (decimal)span.TotalMilliseconds / 60 / 60 / 1000;
return Math.Round(total, PRECISION_CONSTANT);
}
うわー、私は言わなければならない:それをシンプルに保つ:
MessageBox.Show("Result: " + (DateTime.Now.AddDays(10) > DateTime.Now));
Result: True
そして:
MessageBox.Show("Result: " + DateTime.Now.AddDays(10).Subtract(DateTime.Now));
Result: 10.00:00:00
DateTimeオブジェクトには、ブール結果を処理するためのすべての組み込みロジックがあります。
var startTime = new TimeSpan(6, 0, 0); // 6:00 AM
var endTime = new TimeSpan(5, 30, 0); // 5:30 AM
var hours24 = new TimeSpan(24, 0, 0);
var difference = endTime.Subtract(startTime); // (-00:30:00)
difference = (difference.Duration() != difference) ? hours24.Subtract(difference.Duration()) : difference; // (23:30:00)
2つの異なる日付を比較すると、日付間の差を追加することもできます。
new TimeSpan(24 * days, 0, 0)