2017-05-02 4 views
0

Cシャープ妥当性をチェックします。CSHARPは、私は有効期限フィールドにユーザーの入力をチェックして、日付が今日の日付より後にあることを確認しようとしています</p> <p>

入力はフォーマットYYYY-MM-DD

私は私が見つけた例は

System.Globalizationを使用し、有効なDateTime型の書式

にして文字列を取得し、問題を抱えていています。ここで

をコンパイルしませんCultureInfo.InvariantCulture.DateTimeStyles.None は私のコードです

// initate with button 

    private void ChkDateBtn_Click(object sender, EventArgs e) 
      { 
       stInputDate = DateTxtBx.Text; // input from text box 
       // bExpDateLater already defined as bool 
       bExpDateLater = ValidateExpDate(stInputDate); 

       if (bExpDateLater == true) 
       { 
        OutputTxtBox.Text = "This is a valid Date"; 
       } 
       else 
       { 
        OutputTxtBox.Text = "This is not a valid Date"; 
       } 

      } 

    // validate date as later than today 

    private bool ValidateExpDate(string expdate) 
      { 
       // expdate string format yyyy-MM-dd 
       DateTime sDateNow = DateTime.Now; 

       // remove hyphen from date 
       expdate = expdate.Replace("-", ""); 
       string format = "yyyyMMdd"; 
       DateTime sCompareDate; 
       DateTime.TryParseExact(expdate, format,System.Globalization.CultureInfo.InvariantCulture.DateTimeStyles.None, out sCompareDate); 

       if (sDateNow < sCompareDate) 
       { 
        return true; 

       } 
       else 
       { 

        return false; 
       } 
      } 

何かアドバイスが大幅

+0

だったか、私は日付を解析しようとしていた

とあったがいただければ幸いですDD yyy-MM-DD –

+0

あなたはコンマがありません - それは 'System.Globalization.CultureInfo.InvariantCulture、System.Globalization.DateTimeStyles.None'である必要があります – stuartd

+0

あなたがコードで使用しているフォーマットは' yyyyMMdd'ではなく'yyyy-MM-dd' – MrZander

答えて

0

問題は、これが入力書式yyyy-MM-であるソリューション

private bool ValidateExpDate(string expdate) 
    { 
     // expdate string format yyyy-MM-dd 
     DateTime dtDateNow = DateTime.Now; 
     // DateTime shortDateNow = dtDateNow.ToShortTimeString; 

     // remove hyphen from date 
     expdate = expdate.Replace("-", ""); 
     string format = "yyyyMMdd"; 

     DateTime dtCompareDate = DateTime.ParseExact(expdate, format, System.Globalization.CultureInfo.CurrentCulture); 

     if (dtDateNow < dtCompareDate) 
     { 
      return true; 

     } 
     else 
     { 

      return false; 
     } 
    } 
関連する問題