2016-06-01 17 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)); 
関連する問題