【C#】DateTime / TimeSpan ~ 日時 / 時間の扱いについて ~

■ DateTime

日時 => 日付にする

Date で日時を「00:00:00.000」にしてくれる(便利)
// 2011/04/13 0:00:00
this.label1.Text = DateTime.Now.Date.ToString();

■ TimeSpan

 * 時間の差の扱い

実装例

サンプルのように記述する方法もあるし、以下のように1行で書いてもいい
DateTime dateTime1 = DateTime.Now;
DateTime dateTime2 = DateTime.Now;

double diff = dateTime1.Subtract(dateTime2).TotalSeconds;

■ サンプル

 * 設定した値に対してタイムオーバーしたかどうかを判定するクラス

Timeover.cs

public class Timeover
{
    public DateTime Time { get; set; }
    double timeover;

    public Timeover(double timeover)
    {
        this.Time = DateTime.Now;
        this.timeover = timeover;
    }

    public bool IsTimeover()
    {
        TimeSpan timeSpan = DateTime.Now.Subtract(this.Time);
        double time = this.timeover - timeSpan.TotalSeconds;
        return time < 0;
    }
}

Form1.cs

呼び出し側
private Timeover timeover;

private void Form1_Load(object sender, EventArgs e)
{
    this.timeover = new Timeover(10); 
}

private void button4_Click(object sender, EventArgs e)
{
    bool result = this.timeover.IsTimeover();
    this.label1.Text = result ? "10秒超えました" : "10秒超えてません";
    this.label2.Text = this.timeover.Time.ToString();
}