2016-06-01 3 views
-1

콘솔에 특정 날짜를 입력 할 때 요일을 표시하는 프로그램을 만들어야합니다.특정 날짜를 입력하여 요일 계산

작성한 코드는 있지만 작동하지 않는 이유는 무엇입니까?

public class CalculateDay{ 

    public static void main(String []args){ 


     int m = Integer.parseInt(args[0]); 
     int d = Integer.parseInt(args[1]); 
     int y = Integer.parseInt(args[2]); 

     System.out.println("Finding day of week for "+m+"-"+d+"-"+y); 


     int yo = y - ((14-m)/12); 

     int x = yo + yo/4 - yo/100 + yo/400; 

     int mo = m + 12*((14-m)/12) -2; 

     int dayOfWeek = (d + x + (31*mo)/12)%7; 

     String dayString; 

     switch(dayOfWeek){ 
      case 0: dayString = "Sunday"; 
         break; 
      case 1: dayString = "Monday"; 
         break; 
      case 2: dayString = "Tuesday"; 
         break; 
      case 3: dayString = "Wednesday"; 
         break; 
      case 4: dayString = "Thursday"; 
         break; 
      case 5: dayString = "Friday"; 
         break; 
      case 6: dayString = "Saturday"; 
         break;    
      default: dayString = "Could not find"; 
     } 

     System.out.println(dayString); 
    } 
} 
+2

가 왜 생각이 *해야 * 일을? 여기에서 계산하는 것이 무엇이라고 생각하십니까? 어떤 투입물을주고 있는가, 어떤 산출물을 얻는가, 무엇을 기대합니까? –

+0

그레고리오 데이트에서 율리우스 니스를 계산할 수 있습니다. (여기에 설명 된 방법을 사용합니다.) (https://en.wikipedia.org/wiki/Julian_date#Converting_Julian_or_Gregorian_calendar_date_to_Julian_day_number). 코드에이 메소드에 대한 힌트가 있습니다 (예 :'(14-m)/12' 및'yo/4-yo/100 + yo/400'). 아마도 그 방법을 시도해보십시오. 올바른 답을 얻을 수 있는지 알아보십시오. –

+0

위의 기본적인 그레고리 안 캘린더 계산을했는데 스위치 구성을 사용했습니다 (할당에 의해 요구됨). 나는 틀린 무엇인가 명확히했다. 그러나 나는 단지 그것을 발견 할 수 없었다. 조언 해 주셔서 감사합니다. –

답변

0

이 시도 :

int m = Integer.parseInt(args[0]); 
int d = Integer.parseInt(args[1]); 
int y = Integer.parseInt(args[2]); 

System.out.println("Finding day of week for "+m+"-"+d+"-"+y); 

Calendar cal = new GregorianCalendar(y, m, d); 
System.out.println("DAY_OF_WEEK: " + cal.get(Calendar.DAY_OF_WEEK));