首页 > 解决方案 > 比较字符串具有所有数字并比较日期

问题描述

我有一个格式为“YYYYMMDD_NNN”的字符串值。除 _ 外都是整数。我必须验证这个字符串值。

  1. 验证所有是否都是整数,除了 _

  2. 日期值不应大于今天的日期。

  3. 它应该是相同的格式,前 8 个是数字,然后是 _,最后三个是数字。

这就是我写的。有没有更好的方法来改进它或简化版本

string strDate = _htfdate.Substring(0, 8);

if (int.TryParse(strHtfDate, out _))
{
    //ok, do something
    DateTime dt1;

    if(DateTime.TryParse(strHtfDate, out dt1))
    {
        if (dt1 > DateTime.Today)
            //do something
    }
}
else
{
    //not an int
}

我没有在这里编写代码来验证最后 3 个字符。

标签: c#.net

解决方案


string datestring = "20190519_562";
 //check first 8 characters are digit
var rsult = datestring.Take(8).All(char.IsDigit);
 if(rsult == true)
 {
// get last three characters of string 
string dtst= datestring.Substring(datestring.Length - 4);
if(dtst[0]== '_') // check first character is "_"
{
 int length = dtst.Substring(1).Length; // get length of character after "_"
 if(length==3)
{
enter code here
 }

}
 }

推荐阅读