web-dev-qa-db-ja.com

2つの日付の間の時間を計算しますか?

誰かが私がこの仕事をするのを手伝ってくれませんか?

次のように、VB.NETの2つの日付間の時間を計算したいと思います。

startdate: 2011/12/30  
enddate: 2011/12/31  

計算:?時間?分 ?秒

9
Meysam Savameri

あなたはこれを試すことができます

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 );

のような出力、

Time Difference (seconds): 15
Time Difference (minutes): 1
Time Difference (hours): 0
Time Difference (days): 0

そして、上記と同等のVB.Net:

Dim startTime As DateTime = DateTime.Now

Dim endTime As DateTime = DateTime.Now.AddSeconds(75)

Dim span As TimeSpan = 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)
17
Manoj Savalia

2 DateTimesを引くと、これらすべてのプロパティを持つTimeSpan構造体が得られます。

5
Daniel A. White

質問に基づいて、2つの日付間の時間を計算するには、DateDiffを使用することをお勧めします。以下の例では、時を分、秒、月などに置き換えることもできます。

Dim timeDif As Long = DateDiff(DateInterval.Hour, startDate, endDate)

TimeSpanを使用すると、日周期を除いた時差が返されます。以下のコードを参照してください。

Dim startDate As Date = Date.Now
Dim endDate As Date = startDate.AddDays(3)  'add 3 days to startDate
Dim timeSpan As TimeSpan = endDate.Subtract(startDate)
Dim difDays As Integer = timeSpan.Days   'get 3 days
Dim difHr As Integer = timeSpan.Hours    'get 0 hours although 3 days difference
Dim difMin As Integer = timeSpan.Minutes 'get 0 minutes although 3 days difference
3
Jason