2017-02-10 3 views
0
enum DaysInMonth 
    { 
     Jan = 31, Feb = 28, Mar = 31, Apr = 30, May = 31, Jun = 30, 
     Jul = 31, Aug = 31, Sep = 30, Oct = 31, Nov = 30, Dec = 31 
    }; 
DaysInMonth dm = DaysInMonth.Dec; 
     Console.WriteLine($"Number of days in {dm} is {dm:D}"); 

Получение Количество дней в Июль 31, ожидая Количество дней в декабре составляет 31не получает ожидаемого результата от Enum

+4

Возможный дубликат [Non-уникальных значений перечислений] (http://stackoverflow.com/questions/8043027/non-unique-enum-values) – Steve

+0

перечисления должны быть объявлены с уникальными значениями. – Pavvy

ответ

4

не очень хорошая идея, чтобы жёстко количество дней в месяце. Как насчет високосных лет?

Правильный способ получает дней в месяц:

DateTime.DaysInMonth(year, month) 
+0

Yeh это идеальный способ, чтобы не было дней. – UJS

0

Вы пытаетесь сделать использование Enum. Так что попробуйте следовать коду.

enum DaysInMonth 
     { 
      Jan = 31, Feb = 28, Mar = 31, Apr = 30, May = 31, Jun = 30, 
      Jul = 31, Aug = 31, Sep = 30, Oct = 31, Nov = 30, Dec = 31 
     }; 



static void Main(string[] args) 
     { 
      DaysInMonth dm = DaysInMonth.Dec; 
      Console.WriteLine("Number of days in {0} is {1} : ", dm, (int)dm); 
      Console.ReadKey(); 
     }