欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#驗證給定字符串形式日期是否合法的方法

 更新時間:2015年03月27日 11:13:40   作者:feige  
這篇文章主要介紹了C#驗證給定字符串形式日期是否合法的方法,實例分析了C#針對字符串及日期的操作技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了C#驗證給定字符串形式日期是否合法的方法。分享給大家供大家參考。具體分析如下:

這段C#代碼用于驗證日期的有效性,對于用戶輸入的不規(guī)則日期也作了簡單處理,比如用戶輸入了“今天”,則代碼會認為用戶要返回的是今天的日期,另外可以對純數(shù)字的日期進行解析,比如:20130906

/// <summary>
/// 驗證日期是否合法,對不規(guī)則的作了簡單處理
/// </summary>
/// <param name="date">日期</param>
public static bool IsDate(ref string date)
{
  //如果為空,認為驗證合格
  if (IsNullOrEmpty(date))
  {
 return true;
  }
  //清除要驗證字符串中的空格
  date = date.Trim();
  //替換\
  date = date.Replace(@"\", "-");
  //替換/
  date = date.Replace(@"/", "-");
  //如果查找到漢字"今",則認為是當前日期
  if (date.IndexOf("今") != -1)
  {
 date = DateTime.Now.ToString();
  }
  try
  {
 //用轉換測試是否為規(guī)則的日期字符
 date = Convert.ToDateTime(date).ToString("d");
 return true;
  }
  catch
  {
 //如果日期字符串中存在非數(shù)字,則返回false
 if (!IsInt(date))
 {
   return false;
 }
 #region 對純數(shù)字進行解析
 //對8位純數(shù)字進行解析
 if (date.Length == 8)
 {
   //獲取年月日
   string year = date.Substring(0, 4);
   string month = date.Substring(4, 2);
   string day = date.Substring(6, 2);
   //驗證合法性
   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;
 }
 //對6位純數(shù)字進行解析
 if (date.Length == 6)
 {
   //獲取年月
   string year = date.Substring(0, 4);
   string month = date.Substring(4, 2);
   //驗證合法性
   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;
 }
 //對5位純數(shù)字進行解析
 if (date.Length == 5)
 {
   //獲取年月
   string year = date.Substring(0, 4);
   string month = date.Substring(4, 1);
   //驗證合法性
   if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
   {
 return false;
   }
   //拼接日期
   date = year + "-" + month;
   return true;
 }
 //對4位純數(shù)字進行解析
 if (date.Length == 4)
 {
   //獲取年
   string year = date.Substring(0, 4);
   //驗證合法性
   if (Convert.ToInt32(year) < 1900 || Convert.ToInt32(year) > 2100)
   {
 return false;
   }
   //拼接日期
   date = Convert.ToDateTime(year).ToString("d");
   return true;
 }
 #endregion
 return false;
  }
}

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C#/VB.NET實現(xiàn)將Html轉為Word的示例詳解

    C#/VB.NET實現(xiàn)將Html轉為Word的示例詳解

    本文分享以C#程序代碼為例,實現(xiàn)將Html文件轉換Word文檔的方法(附VB.NET代碼)。在實際轉換場景中可參考本文的方法,感興趣的可以了解一下
    2022-07-07
  • C# 中的IComparable和IComparer的使用及區(qū)別

    C# 中的IComparable和IComparer的使用及區(qū)別

    這篇文章主要介紹了C# 中的IComparable和IComparer的使用及區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • C# TreeView控件使用代碼

    C# TreeView控件使用代碼

    TreeView控件的實例代碼,需要的朋友可以參考下。
    2009-09-09
  • C#連接Oracle數(shù)據(jù)庫的方法

    C#連接Oracle數(shù)據(jù)庫的方法

    這篇文章主要介紹了C#連接Oracle數(shù)據(jù)庫的方法,實例分析了C#連接Oracle數(shù)據(jù)庫的方法與主要實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • C#中38個常用運算符的優(yōu)先級的劃分和理解

    C#中38個常用運算符的優(yōu)先級的劃分和理解

    這只我自己在學C#中的一些總結,其中對于各級的劃分方式、各操作符的優(yōu)先級的理解并不見得正確,只是自己的看法,拿出來與大家分享
    2012-08-08
  • C#基于Twain協(xié)議調用掃描儀,設置多圖像輸出模式(Multi image output)

    C#基于Twain協(xié)議調用掃描儀,設置多圖像輸出模式(Multi image output)

    這篇文章主要介紹了C#基于Twain協(xié)議調用掃描儀,設置多圖像輸出模式(Multi image output)的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#使用第三方組件生成二維碼匯總

    C#使用第三方組件生成二維碼匯總

    本文給大家匯總了幾種C#使用第三方組件生成二維碼的方法以及示例,非常的簡單實用,都是項目中經常需要用到的,希望大家能夠喜歡
    2016-12-12
  • C#?CM框架實現(xiàn)多頁面管理的實例代碼

    C#?CM框架實現(xiàn)多頁面管理的實例代碼

    這篇文章主要介紹了C#?CM框架下一行代碼實現(xiàn)多頁面管理,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • C# Resources資源詳解

    C# Resources資源詳解

    這篇文章主要為大家詳細介紹了C# Resources資源,包括Resource Basics、Strongly Typed Resources等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • C#連接數(shù)據(jù)庫的方法

    C#連接數(shù)據(jù)庫的方法

    ASP.NET連接數(shù)據(jù)庫的技術叫ADO.NET,它是用來向數(shù)據(jù)庫提交sql語句的一堆類。這里連接的是Sql Server 2008數(shù)據(jù)庫,其他數(shù)據(jù)庫用法差不多,就是調用的類名不一樣
    2015-11-11

最新評論