1

こんにちは、2 つの日付を比較しようとしています。2012 年 5 月 25 日 (開始日) と 12 年 5 月 31 日 (終了日) を指定すると、何らかの理由で次のコードが 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コンソールに印刷します。

もちろん、まったく同じ条件を2回繰り返すことは無意味です。条件を一度述べるだけで十分です。

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

かどうかを確認する関数を作成するのはなぜ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; 
}

このコードは true を返します!!!

それを分割して、必要な値があることを確認します

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 に答える