2

C# で独自の Date プログラムを作成しようとしています。問題は、ユーザーが 2-31 などの日付を入力すると、プログラムがそれを許可することです。どの月が入力されているかを照合して、その月にその日が空いているかどうかを確認できる条件を作成したいと考えています。以下のコードを使用していますが、10 月 10 日など、正しいはずの日に例外がスローされます。これをコメントアウトすると、日付は機能しますが、月と一致するかどうかはチェックされません。

public int Day
    {
        get
        {
            return day;
        } 
        private set 
        {
            //int[] daysPerMonth = { 0, 31, 28, 31, 30, 31, 30, 
            //                 31, 31, 30, 31, 30, 31 };

            //// check if day in range for month
            //if (value > 0 && value <= daysPerMonth[Month])
            //    day = value;

            //else // day is invalid
            //    throw new ArgumentOutOfRangeException(
            //       "Day", value, "Day out of range for current month/year");

            if (value > 0 && value <= 31) 
                day = value;
            else 
                throw new ArgumentOutOfRangeException("Day", value, "Day must be 1-31");

        } 
    } 
4

2 に答える 2

1

DateTimeを使用して実行する必要がある場合は、次を使用して実行できます

DateTime.DaysInMonth(Year, Month);  

参照

于 2013-06-15T05:23:54.763 に答える