日時の差分を取得する(経過時間を取得する)
日時の差分は DateTime 型の差分を TimeSpan 構造体に代入し、そのメンバを参照することで取得します。
using System;
using System.Text;
using System.Windows.Forms;
namespace myapp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click( object sender, EventArgs e )
{
// 今の時間を取得する.
DateTime dtm_now = DateTime.Now;
// 今から ( 10日 + 0.5日 = 10.5日 ) 前を取得する.
DateTime dtm_prv = dtm_now.AddDays( -10.5 );
// 日付型の時間差分構造体を取得する.
TimeSpan tsp = dtm_now - dtm_prv;
// 構造体の値を参照する.
double d = tsp.TotalDays;
double h = tsp.TotalHours;
double min = tsp.TotalMinutes;
double sec = tsp.TotalSeconds;
double msec = tsp.TotalMilliseconds;
// メッセージボックスに表示する文字列を生成する.
StringBuilder sb = new StringBuilder();
sb.AppendLine( String.Format( "days: {0:f1}", d ) );
sb.AppendLine( String.Format( "hours: {0:f1}", h ) );
sb.AppendLine( String.Format( "minutes: {0:f1}", min ) );
sb.AppendLine( String.Format( "seconds: {0:f1}", sec ) );
sb.AppendLine( String.Format( "milli-seconds: {0:f1}", msec ) );
// メッセージボックスに表示する.
String msg = sb.ToString().Trim();
MessageBox.Show( msg );
}
}
}
結果は
days: 10.5
hours: 252.0
minutes: 15120.0
seconds: 907200.0
milli-seconds: 907200000.0
になります。
TimeSpan 構造体型のメンバには下記のメンバもあります。
Days
Hours
Minutes
Seconds
Milliseconds
これらのメンバの意味は実行すればすぐわかるので試してみてください。