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; }
沒有留言:
張貼留言