Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 比较日期和可能不是日期的字符串的最佳方法是什么?_C#_.net 4.0 - Fatal编程技术网

C# 比较日期和可能不是日期的字符串的最佳方法是什么?

C# 比较日期和可能不是日期的字符串的最佳方法是什么?,c#,.net-4.0,C#,.net 4.0,我不知道为什么我的头现在在旋转——这肯定是漫长的一天——但我需要一些帮助 我有一个DateTime变量和一个String变量。我最终需要比较两者的平等性。DateTime将为null或DateTime。该字符串将是以字符串(mm/dd/yy)表示的日期或单个单词。我只需要一个简单的布尔值来表示这两个变量相等,但我真的很难做到这一点 目前,我得到一个错误,说date2未初始化。非常感谢您的建议。谢谢 这是我开始的 string date1= "12/31/2010"; DateTime? date

我不知道为什么我的头现在在旋转——这肯定是漫长的一天——但我需要一些帮助

我有一个DateTime变量和一个String变量。我最终需要比较两者的平等性。DateTime将为null或DateTime。该字符串将是以字符串(mm/dd/yy)表示的日期或单个单词。我只需要一个简单的布尔值来表示这两个变量相等,但我真的很难做到这一点

目前,我得到一个错误,说date2未初始化。非常感谢您的建议。谢谢

这是我开始的

string date1= "12/31/2010";
DateTime? date2= new DateTime(1990, 6, 1);

bool datesMatch = false;

DateTime outDate1;
DateTime.TryParse(date1, out outDate1);

DateTime outDate2;

if (date2.HasValue)
{
   DateTime.TryParse(date2.Value.ToShortDateString(), out outDate2);
}

if (outDate1== outDate2)
{
   datesMatch = true;
}

if (!datesMatch)
{
   // do stuff here;
}
仅供参考-date1和date2在顶部初始化仅用于开发目的。实际值是从数据库中提取的


编辑#1-这是我的最新作品。如何消除因outDate2未初始化而导致的错误?我在里面放了一个任意的日期,它会清除错误。只是感觉不对

    string date1 = "12/31/2010";
    DateTime? date2 = new DateTime(1990, 6, 1);

    bool datesMatch = false;

    DateTime outDate1;
    bool successDate1 = DateTime.TryParse(date1, out outDate1);

    DateTime outDate2;
    bool successDate2 = false;

    if (date2.HasValue)
    {
        successDate2 = DateTime.TryParse(date2.Value.ToShortDateString(), out outDate2);
    }

    if (successDate1 && successDate2)
    {
        if (outDate1 == outDate2)
        {
            datesMatch = true;
        }
    }

    if (!datesMatch)
    {
        // do stuff here;
    }

DateTime.TryParse
返回一个布尔值,以便知道它是否成功。使用该返回值

string date1= "12/31/2010";
DateTime? date2= new DateTime(1990, 6, 1);

bool datesMatch = false;

DateTime outDate1;
bool success = DateTime.TryParse(date1, out outDate1);

DateTime outDate2;

if (success)
{
   // etc...
}

DateTime.TryParse
返回一个布尔值,以便知道它是否成功。使用该返回值

string date1= "12/31/2010";
DateTime? date2= new DateTime(1990, 6, 1);

bool datesMatch = false;

DateTime outDate1;
bool success = DateTime.TryParse(date1, out outDate1);

DateTime outDate2;

if (success)
{
   // etc...
}

为什么要忽略
DateTime.TryParse
的返回值?您如何知道它是否成功?是否有任何理由将
date2
声明为可空类型?date2在db中定义为可空类型,实际上可能返回为空。我已经在数据库中检查过了。为什么要忽略
DateTime.TryParse
的返回值?您如何知道它是否成功?是否有任何理由将
date2
声明为可空类型?date2在db中定义为可空类型,实际上可能返回为空。我已经在数据库里查过了。