C#驗(yàn)證給定字符串形式日期是否合法的方法
本文實(shí)例講述了C#驗(yàn)證給定字符串形式日期是否合法的方法。分享給大家供大家參考。具體分析如下:
這段C#代碼用于驗(yàn)證日期的有效性,對(duì)于用戶輸入的不規(guī)則日期也作了簡(jiǎn)單處理,比如用戶輸入了“今天”,則代碼會(huì)認(rèn)為用戶要返回的是今天的日期,另外可以對(duì)純數(shù)字的日期進(jìn)行解析,比如:20130906
/// <summary> /// 驗(yàn)證日期是否合法,對(duì)不規(guī)則的作了簡(jiǎn)單處理 /// </summary> /// <param name="date">日期</param> public static bool IsDate(ref string date) { //如果為空,認(rèn)為驗(yàn)證合格 if (IsNullOrEmpty(date)) { return true; } //清除要驗(yàn)證字符串中的空格 date = date.Trim(); //替換\ date = date.Replace(@"\", "-"); //替換/ date = date.Replace(@"/", "-"); //如果查找到漢字"今",則認(rèn)為是當(dāng)前日期 if (date.IndexOf("今") != -1) { date = DateTime.Now.ToString(); } try { //用轉(zhuǎn)換測(cè)試是否為規(guī)則的日期字符 date = Convert.ToDateTime(date).ToString("d"); return true; } catch { //如果日期字符串中存在非數(shù)字,則返回false if (!IsInt(date)) { return false; } #region 對(duì)純數(shù)字進(jìn)行解析 //對(duì)8位純數(shù)字進(jìn)行解析 if (date.Length == 8) { //獲取年月日 string year = date.Substring(0, 4); string month = date.Substring(4, 2); string day = date.Substring(6, 2); //驗(yàn)證合法性 if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100) { return false; } if (Convert.ToInt32(month) > 12 || Convert.ToInt32(day) > 31) { return false; } //拼接日期 date = Convert.ToDateTime(year + "-" + month + "-" + day).ToString("d"); return true; } //對(duì)6位純數(shù)字進(jìn)行解析 if (date.Length == 6) { //獲取年月 string year = date.Substring(0, 4); string month = date.Substring(4, 2); //驗(yàn)證合法性 if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100) { return false; } if (Convert.ToInt32(month) > 12) { return false; } //拼接日期 date = Convert.ToDateTime(year + "-" + month).ToString("d"); return true; } //對(duì)5位純數(shù)字進(jìn)行解析 if (date.Length == 5) { //獲取年月 string year = date.Substring(0, 4); string month = date.Substring(4, 1); //驗(yàn)證合法性 if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100) { return false; } //拼接日期 date = year + "-" + month; return true; } //對(duì)4位純數(shù)字進(jìn)行解析 if (date.Length == 4) { //獲取年 string year = date.Substring(0, 4); //驗(yàn)證合法性 if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100) { return false; } //拼接日期 date = Convert.ToDateTime(year).ToString("d"); return true; } #endregion return false; } }
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
- C#實(shí)現(xiàn)將字符串轉(zhuǎn)換成日期格式的方法
- C#中判斷、驗(yàn)證字符串是否為日期格式的實(shí)現(xiàn)代碼
- C# string格式的日期時(shí)間字符串轉(zhuǎn)為DateTime類型的方法
- js和C# 時(shí)間日期格式轉(zhuǎn)換的簡(jiǎn)單實(shí)例
- C#轉(zhuǎn)換日期類型實(shí)例
- C#日期格式強(qiáng)制轉(zhuǎn)換方法(推薦)
- C#日期轉(zhuǎn)換函數(shù)分享
- C#實(shí)現(xiàn)日期格式轉(zhuǎn)換的公共方法類實(shí)例
- C#日期格式字符串的相互轉(zhuǎn)換操作實(shí)例分析
相關(guān)文章
C#/VB.NET實(shí)現(xiàn)將Html轉(zhuǎn)為Word的示例詳解
本文分享以C#程序代碼為例,實(shí)現(xiàn)將Html文件轉(zhuǎn)換Word文檔的方法(附VB.NET代碼)。在實(shí)際轉(zhuǎn)換場(chǎng)景中可參考本文的方法,感興趣的可以了解一下2022-07-07C# 中的IComparable和IComparer的使用及區(qū)別
這篇文章主要介紹了C# 中的IComparable和IComparer的使用及區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01C#中38個(gè)常用運(yùn)算符的優(yōu)先級(jí)的劃分和理解
這只我自己在學(xué)C#中的一些總結(jié),其中對(duì)于各級(jí)的劃分方式、各操作符的優(yōu)先級(jí)的理解并不見得正確,只是自己的看法,拿出來與大家分享2012-08-08C#基于Twain協(xié)議調(diào)用掃描儀,設(shè)置多圖像輸出模式(Multi image output)
這篇文章主要介紹了C#基于Twain協(xié)議調(diào)用掃描儀,設(shè)置多圖像輸出模式(Multi image output)的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2021-01-01C#?CM框架實(shí)現(xiàn)多頁面管理的實(shí)例代碼
這篇文章主要介紹了C#?CM框架下一行代碼實(shí)現(xiàn)多頁面管理,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03