2012年9月12日 星期三

[C#]日期驗證 Date Validator

1.日期驗證(for 西元年)
public static bool IsDate(string anyString)
{
    if (anyString.Length != 8) //這是在沒有任何符號(/.-)的狀況下
        return false;
    else
    {
        //在沒有符號的狀況下補上日期分隔符號
        anyString = anyString.Substring(0, 4) + "/" + anyString.Substring(4, 2) + "/" + anyString.Substring(6, 2);
        //====以上若已經有在輸入時即限制輸入格式可不需要====
        try
        {
            DateTime dt;
            dt = DateTime.Parse(anyString);
            return true;
        }
        catch
        {
            return false;
        }
    }
}
註:如果是要判斷民國年就將原本的民國年轉為數值後加上19110000再判斷即可

2.日期區間判斷
DateTime t1 = (DateTime.Parse((int.Parse(d1.Text.Substring(0, d1.Text.Length - 4)) + 1911) + "-" + d1.Text.Substring(d1.Text.Length - 4, 2) + "-" + d1.Text.Substring(d1.Text.Length - 2, 2)));
DateTime t2 = (DateTime.Parse((int.Parse(d2.Text.Substring(0, d2.Text.Length - 4)) + 1911) + "-" + d2.Text.Substring(d2.Text.Length - 4, 2) + "-" + d2.Text.Substring(d2.Text.Length - 2, 2)));

TimeSpan ts = t2 - t1;

//驗證日期區間起始輸入是否正確,後面日期不可小於前面日期
if (ts.Days < 0)
{
    MessageBox.Show("ERROR:請輸入正確日期區間,查詢起始日期必須小於結束日期");
    return false;
}

//天數限制
if (ts.Days >= 31)
{
    messageShow.Text = "ERROR:日期區間最多不可超過31日";
    return false;
}
else
{
    return true;
}

沒有留言:

張貼留言