2017-05-08 22 views
2

過去の日付時刻を拒否する実装に成功しました。今、私は日付を1ヶ月まで、すなわち今日から30日だけ受け入れたいと思っています。どのようにC#でそれを達成することができますか?次のコードは、将来の日付のみを受け入れます。今日から1ヶ月以内に日付を受け入れるには?

public class FutureDate : ValidationAttribute 
    { 
     public override bool IsValid(object value) 
     { 
      DateTime dateTime; 
      var isValid = DateTime.TryParseExact(Convert.ToString(value), 
       "d MMM yyyy", 
       CultureInfo.CurrentCulture, 
       DateTimeStyles.None, 
       out dateTime 
      ); 
      return (isValid && dateTime > DateTime.Now); 
     } 
    } 
+4

'&& dateTime <= DateTime.AddDays(30)'(または 'AddMonths(1)') –

+0

ありがとうございました。それは実際にはDateTime.Now.AddDays(30)です。ありがとうございました! –

+0

固定日数の代わりに月を追加すると、すべてのケースをよりよく処理できます。また、タイムゾーンが心配されていない場合は、P –

答えて

1

解決策が見つかりました。

return (isValid && dateTime > DateTime.Now && dateTime <= DateTime.Now.AddDays(30)); 
+1

が、** 2月**は約31日の月が表示されます。 – Ashiquzzaman

関連する問題