2017-03-19 6 views
0

私はZellersアルゴリズムに基づいてJava(イントロプログラミング)に割り当て、整数、ループ、およびカウンタコードとして入力を書きます。そして、私は最初に日と年を取得するためにwhileループを使用する必要があります1月は& 2月を前年とする。私は少なくとも野球場にいると思ったが、自分のコードを動作させることはできない。どのように改善するための任意の提案?初心者レベルのJava - Zellers algotrithm

import java.util.Scanner; 
import java.text.NumberFormat; 

public class ZellersAlgorithm { 

public static void main(String[] args) { 
    //declarations go here 

int count, Month, Day, Year; 
int C = (int)(Year/100.0); // the century 
int D = (int) (Year % 100); // The year of the century 
int K = Day; 
int M = Month; 
int G = (K + (int)((26 * (M + 1))/10.0) + C + (int)(C/4.0) 
     + (int)(D/4.0) + (5 * D)) % 7; 

Month = (M); 
Day = (K); 
Year = (C + D); 


Scanner scan = new Scanner(System.in); 

//Title 
System.out.println("Project 2 - Zellers Algorithm"); 


while(M != 0){ 


    System.out.print("Enter a numberic day: "); 
    K = scan.nextInt(); 
     if (K == 0) 
      System.out.print("Saturday"); 
     else if (K == 1) 
      System.out.print("Sunday"); 
     else if (K == 2) 
      System.out.print("Monday"); 
     else if (K == 3) 
      System.out.print("Tuesday"); 
     else if (K == 4) 
      System.out.print("Wednesday"); 
     else if (K == 5) 
      System.out.print("Thursday"); 
     else 
      System.out.print("Friday"); 

    System.out.print("Enter a nummeric year: "); 
    ///Need to convert 4 digit year to C & D variable 
    // Add counter, possibly include length counter 1st 2 digits are century/C last 2 are year 
    Year = scan.nextInt(); 

    System.out.print("Enter a numeric month: "); 
    M = scan.nextInt(); 

    switch (M) { 
    case 1: 
     System.out.println("March"); 
     break; 
    case 2: 
     System.out.println("April"); 
     break; 
    case 3: 
     System.out.println("May"); 
     break; 
    case 4: 
     System.out.println("June"); 
     break; 
    case 5: 
     System.out.println("July"); 
     break; 
    case 6: 
     System.out.println("August"); 
     break; 
    case 7: 
     System.out.println("September"); 
     break; 
    case 8: 
     System.out.println("October"); 
     break; 
    case 9: 
     System.out.println("November"); 
     break; 
    case 10: 
     System.out.println("December"); 
     break; 
    case 11: 
     System.out.println("January" + D + count--); 
     break; 
    case 12: 
     System.out.println("February" + D + count--); 
     break; 
    default: 
     System.out.println("Invalid month."); 
     break; 

} 

} 

//formula one 
    //G =([2.6M-.2]+K+D+[D/4]+[C/4]-2C mod 7; 
    //display as integer 
String result = "Day of the week is "; 
    System.out.println(); 

答えて

0

に明らかにするが、手段を動作するように自分のコードを取得することはできませんしてください。

  • int count, Month, Day, Year;しかしいくつかのコメント - 変数は小文字でなければならない(これはあなたのプログラムの動作を変更するが、Javaプログラムのための共通のコードスタイルではありません - ほとんどの人はクラス名としてYear読んでいました) 。 Cのように、すべての大文字は同じです。通常は定数に使用されます。
  • 意味を表す変数名を使用します。 MKCDは、読者の理解を助けるものではありません。
関連する問題