1

大家好,我正在尝试比较两个日期,由于某种原因,如果我指定 25/05/2012(开始日期)和 31/05/12(结束日期),以下代码将返回 false。

仅当使用 25 日作为开始日期时才会发生这种情况,如果我使用 26 日则工作正常。

 public bool IsValidDate(DateTime startDate, DateTime endDate)
    {
        return startDate < endDate && endDate > startDate;
    }

有什么问题?

4

2 回答 2

2

你一定是误会了什么。对于您指定的给定输入,此代码返回true

class Program
{
    static void Main()
    {
        var startDate = new DateTime(2012, 5, 25);
        var endDate = new DateTime(2012, 5, 31);
        Console.WriteLine(IsValidDate(startDate, endDate));
    }

    public static bool IsValidDate(DateTime startDate, DateTime endDate)
    {
        return startDate < endDate && endDate > startDate;
    }
}

true在控制台上打印。

现在当然重复两次完全相同的条件是没有意义的。陈述条件一次就足够了:

public bool IsValidDate(DateTime startDate, DateTime endDate)
{
    return startDate < endDate;
}
于 2012-05-25T07:45:01.400 回答
0

为什么要创建一个函数来检查 if startDate < endDate

private void button1_Click(object sender, EventArgs e)
{
    DateTime startDate = new DateTime(2012 , 05 , 25);
    DateTime endDate = new DateTime(2012 , 05 , 31);

    bool rtnval = IsValidDate(startDate, endDate);

}


public bool IsValidDate(DateTime startDate, DateTime endDate)
{
    return startDate < endDate && endDate > startDate; 
}

此代码返回真!!!

分解它并检查你是否有你想要的值

public bool IsValidDate(DateTime startDate, DateTime endDate)
{
    bool resulta = startDate < endDate; // break here
    bool resultb = endDate > startDate; // break here
    return startDate < endDate && endDate > startDate;
}

// 哎呀,我没有意识到它已经被回答了

于 2012-05-25T08:52:38.727 回答