2014/04/26

【C#】日付のFrom-Toチェック(大小チェック)を行う

画面に日付項目があったら、ほぼ100%あるチェック処理が「日付のFrom-Toチェック」
前置きはこれくらいにしてさっそく

// DateTime型の日付のFrom-Toチェック
if (date1 < date2)
{
    Console.WriteLine("date1はdate2より古い");
}
else if(date1 == date2)
{
    Console.WriteLine("date1とdate2は同じ");
}
else if(date1 > date2)
{
    Console.WriteLine("date1はdate2より新しい");
}

なんのひねりもなく比較演算子(==, !=, >, >=, <, <=)を使えば良い。

ただ、日付項目を都合よくDateTime型で保持している画面は見たことがない。
全てがString型だ。


ここで問題が発生する。
String型は比較演算子を使えない!!




使おうとするとコンパイラさんが「演算子はString型のオペランドに適用することはできません。」って怒られる。

そこで以下のようにCompareToメソッドを使う。

// String型の日付のFrom-Toチェック
switch (dateStr1.CompareTo(dateStr2))
{
    case -1:
        Console.WriteLine("dateStr1はdateStr2より古い");
        break;
    case 0:
        Console.WriteLine("dateStr1とdateStr2は同じ");
        break;
    case 1:
        Console.WriteLine("dateStr1はdateStr2より新しい");
        break;
}



以上

0 件のコメント :

コメントを投稿