【解決方法】入力された日付がより大きな日付(将来の日付)ではないことを検証する方法は?


日付ピッカーがあり、カレンダーから日付を選択します.ユーザーが将来の日付を選択してエラーメッセージをスローするかどうかを検証する方法.jqueryを使用して将来の日付を非表示にすることを知っています.しかし問題は、1つの日付ピッカーがより多くの場所を使用することです.将来の日付を非表示にしないでください.C#でそれを行う方法. エラーメッセージをスローするために将来の日付が入力された場合に日付を検証します。
*私は日付のみを選択します。 日付形式は (dd/mm/yyyy)

私が試したこと:

C#
if (tbxFromDate.Value != "" && Convert.ToDateTime(tbxFromDate.Value) > DateTime.Today)
        {
            Messagebox.Show("From Date should be earlier or equal To Today Date", MessageHelper.MessageType.Warning);
        }

上記のコードは検証に使用されますが、エラーメッセージが発生します。
「文字列は有効な DateTime として認識されませんでした。」
DateTime.Today 関数には (mm/dd/yyyy 12:00:00 AM) があるため
これを検証する方法。 別の方法を使用して、テキストボックスの値を1つの文字列に取得し、今日の日付(日付のみ)を別の文字列に保存しましたが、エラーが発生しました。
エラーは次のとおりです:「文字列で>を使用しないでください」(エラーメッセージを少し忘れています)。

解決策 1

実際、デフォルトのカルチャは dd/mm/yyyy を日付形式として認識しません。 したがって、最初に示したように有効な日時に変換してから比較します

C#
using System.Globalization;
        DateTime dt = DateTime.ParseExact(tbxFromDate.Value, "dd/MM/yyyy", CultureInfo.InvariantCulture);
        if (tbxFromDate.Value != "" && dt > DateTime.Today)
        {
            Messagebox.Show("From Date should be earlier or equal To Today Date", MessageHelper.MessageType.Warning);
        }

コメント

タイトルとURLをコピーしました