2010-03-06 5 views
1

이 간단한 코드 스 니펫을 사용하여 일 번호를 사용하여 월 이름을 생성했지만 Cannot implicitly convert type 'int' to 'string' 오류가 발생했습니다. MonthName을 int로 변경하려고하지 않았습니다!오류 "암시 적으로 'int'유형을 'string'으로 변환 할 수 없습니다."

class Module04 
{ 
    public static void Exercise01() 
    { 
     Console.WriteLine("Please Enter a day number between 1 and 365: "); 
     string line = Console.ReadLine(); 
     int dayNum = int.Parse(line); 

     int monthNum = 0; 

     if (dayNum <= 31) // January 
     { 
      goto End; 
     } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

     if (dayNum <= 28) // February 
     { 
      goto End; 
     } 
     else 
     { 
      dayNum -= 28; 
      monthNum++; 
     } 

     if (dayNum <= 31) // March 
     { 
      goto End; 
     } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

     if (dayNum <= 30) // April 
     { goto End; } 
     else 
     { 
      dayNum -= 30; 
      monthNum++; 
     } 

     if (dayNum <= 31) // May 
     { goto End; } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

     if (dayNum <= 30) // June 
     { goto End; } 
     else 
     { 
      dayNum -= 30; 
      monthNum++; 
     } 

     if (dayNum <= 31) // July 
     { goto End; } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

     if (dayNum <= 31) // August 
     { goto End; } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

     if (dayNum <= 30) // September 
     { goto End; } 
     else 
     { 
      dayNum -= 30; 
      monthNum++; 
     } 

     if (dayNum <= 31) // October 
     { goto End; } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

     if (dayNum <= 30) // November 
     { goto End; } 
     else 
     { 
      dayNum -= 30; 
      monthNum++; 
     } 

     if (dayNum <= 31) // December 
     { goto End; } 
     else 
     { 
      dayNum -= 31; 
      monthNum++; 
     } 

    End: 

     string monthName; 

     switch (monthName) 
     { 
      case 0: 
       monthName = "January"; break; 
      case 1: 
       monthName = "February"; break; 
      case 2: 
       monthName = "March"; break; 
      case 3: 
       monthName = "April"; break; 
      case 4: 
       monthName = "May"; break; 
      case 5: 
       monthName = "June"; break; 
      case 6: 
       monthName = "July"; break; 
      case 7: 
       monthName = "August"; break; 
      case 8: 
       monthName = "September"; break; 
      case 9: 
       monthName = "October"; break; 
      case 10: 
       monthName = "November"; break; 
      case 11: 
       monthName = "December"; break; 
      default: 
       monthName = "Not yet Done"; break; 
     } 
     Console.WriteLine("{0} {1}", dayNum, monthName); 
    } 
} 
+0

이 코드는 윤년을 설명하지 않습니다. –

+0

숙제 태그가 없어야합니까? –

+0

oopz .. ddnt knw abt it .. 여기에 초보자가 있습니다. 확실한 nxt ym : D – user282659

답변

2

그것은 당신이 int로서 사용하고있는 switch의이 - 당신은 아마 switch 문에 monthNum를 전달하는 것을 의미했다.

은 (또한 : 당신은 첫 번째 부분에서 if의 모든에 monthNum == ...을하지 말았어야?)

1

변경 당신은 MONTHNAME에 스위치를하고있는

switch (monthNum) 
+0

해결 된 THankss : D – user282659

0

는 MONTHNAME은 문자열입니다.

string monthName; 

      switch (monthName) 
      { 
       case "0" : 
        monthName = "January"; break; 
       case "1" : 
        monthName = "February"; break; 
       case "2" : 
        monthName = "March"; break; 
       case "3" : 
        monthName = "April"; break; 
       case "4" : 
        monthName = "May"; break; 
       case "5" : 
        monthName = "June"; break; 
       case "6" : 
        monthName = "July"; break; 
       case "7" : 
        monthName = "August"; break; 
       case "8" : 
        monthName = "September"; break; 
       case "9" : 
        monthName = "October"; break; 
       case "10" : 
        monthName = "November"; break; 
       case "11" : 
        monthName = "December"; break; 
       default : 
        monthName = "Not yet Done"; break; 
      } 
     Console.WriteLine("{0} {1}", dayNum, monthName); 
    } 
관련 문제