2016-02-13 25 views
1

我正在編寫此代碼以通過使用if else語句從主函數調用它來顯示工作日,但是我無法顯示星期一以後的日子。似乎其餘的if else語句沒有被調用。請幫助..使用ifelse顯示工作日

import java.util.GregorianCalendar; 

public class WeekdayName 
{ 
    public static String weekday_name(int weekday) 
    { 
     String result = ""; 

     if (weekday == 1) 
     { 
      result = "Sunday"; 
     } 
     else if (weekday == 2) 
     { 
      result = "Monday"; 
     } 
     else if (weekday == 3) 
     { 
      result = "Tuesday"; 
     } 
     else if (weekday == 4) 
     { 
      result = "Wednesday"; 
     } 

     else if (weekday == 5) 
     { 
      result = "Thursday"; 
     } 
     else if (weekday == 6) 
     { 
      result = "Friday"; 
     } 

     else if (weekday == 7) 
     { 
      result = "Saturday"; 
     } 
     else if (weekday == 0) 
     { 
      result = "Sunday"; 
     } 
     else 
     { 
      result = "ERROR"; 
     } 
     return result; 
    } 


    public static void main(String[] args) 
    { 
     System.out.println("Weekday 1: " + weekday_name(1)); 
     System.out.println("Weekday 2: " + weekday_name(2)); 
     System.out.println("Weekday 3: " + weekday_name(3)); 
     System.out.println("Weekday 4: " + weekday_name(4)); 
     System.out.println("Weekday 5: " + weekday_name(5)); 
     System.out.println("Weekday 6: " + weekday_name(6)); 
     System.out.println("Weekday 7: " + weekday_name(7)); 
     System.out.println("Weekday 0: " + weekday_name(0)); 
     System.out.println(); 
     System.out.println("Weekday 43: " + weekday_name(43)); 
     System.out.println("Weekday 17: " + weekday_name(17)); 
     System.out.println("Weekday -1: " + weekday_name(-1)); 

     Calender calender = new GregorianCalender(); 
     int dayofWeek = calender.get(Calender.DAY_OF_WEEK); 

     System.out.println("\nToday is a " + weekday_name(dayofWeek) + "!"); 
    } 

} 

請幫傢伙...

+2

這是'Calendar',不'Calender'。 – Marvin

+0

小心包括程序輸出並解釋爲什麼你認爲它不正確? – mustaccio

+1

一旦你編譯代碼,通過正確拼寫Calend ** a ** r,它可以正常工作。見[Ideone](https://ideone.com/eJZc69)。 – Andreas

回答

0

您當前的代碼不編譯由於兩個問題:

  • Calendar,不Calender
  • 您需要導入java.util.Calendar以及

該rea兒子爲什麼你只看到星期一的輸出,可能是你在不知不覺中執行了一個較舊的(正確編譯的)源代碼版本,這個版本還沒有包含其他日期的輸出。但這只是猜測。

請注意,DAY_OF_WEEK實際上並沒有返回0,因此您也可以考慮返回ERROR

固定碼:

import java.util.GregorianCalendar; 
import java.util.Calendar; 

public class WeekdayName { 
    public static String weekday_name(int weekday) { 
     String result = ""; 

     if (weekday == 1) { 
      result = "Sunday"; 
     } else if (weekday == 2) { 
      result = "Monday"; 
     } else if (weekday == 3) { 
      result = "Tuesday"; 
     } else if (weekday == 4) { 
      result = "Wednesday"; 
     } else if (weekday == 5) { 
      result = "Thursday"; 
     } else if (weekday == 6) { 
      result = "Friday"; 
     } else if (weekday == 7) { 
      result = "Saturday"; 
     } else if (weekday == 0) { 
      result = "Sunday"; 
     } else { 
      result = "ERROR"; 
     } 
     return result; 
    } 

    public static void main(String[] args) { 
     System.out.println("Weekday 1: " + weekday_name(1)); 
     System.out.println("Weekday 2: " + weekday_name(2)); 
     System.out.println("Weekday 3: " + weekday_name(3)); 
     System.out.println("Weekday 4: " + weekday_name(4)); 
     System.out.println("Weekday 5: " + weekday_name(5)); 
     System.out.println("Weekday 6: " + weekday_name(6)); 
     System.out.println("Weekday 7: " + weekday_name(7)); 
     System.out.println("Weekday 0: " + weekday_name(0)); 
     System.out.println(); 
     System.out.println("Weekday 43: " + weekday_name(43)); 
     System.out.println("Weekday 17: " + weekday_name(17)); 
     System.out.println("Weekday -1: " + weekday_name(-1)); 

     Calendar calender = new GregorianCalendar(); 
     int dayofWeek = calender.get(Calendar.DAY_OF_WEEK); 

     System.out.println("\nToday is a " + weekday_name(dayofWeek) + "!"); 
    } 
} 

之後,你的邏輯似乎是做工精細:

Weekday 1: Sunday 
Weekday 2: Monday 
Weekday 3: Tuesday 
Weekday 4: Wednesday 
Weekday 5: Thursday 
Weekday 6: Friday 
Weekday 7: Saturday 
Weekday 0: Sunday 

Weekday 43: ERROR 
Weekday 17: ERROR 
Weekday -1: ERROR 

Today is a Saturday! 
+0

是的,我正在執行一個較老的(正確編譯的)源代碼,因此即使在更正TYPO並使用導入java.util.Calendar之後,它在星期一之後也不起作用。所以我把它複製到一個新的文件,它的工作。感謝您的傑出答案。 – JUBER

0

你的錯誤就是拼寫GregorianCalender它 應該GregorianCalendarCalender應該 Calendar。您的代碼需要import java.util.Calendar;

import java.util.Calendar; 
    import java.util.GregorianCalendar; 

    public class WeekdayNAme 
    { 
     public static String weekday_name(int weekday) 
     { 
      String result = ""; 

      if (weekday == 1) 
      { 
       result = "Sunday"; 
      } 
      else if (weekday == 2) 
      { 
       result = "Monday"; 
      } 
      else if (weekday == 3) 
      { 
       result = "Tuesday"; 
      } 
      else if (weekday == 4) 
      { 
       result = "Wednesday"; 
      } 

      else if (weekday == 5) 
      { 
       result = "Thursday"; 
      } 
      else if (weekday == 6) 
      { 
       result = "Friday"; 
      } 

      else if (weekday == 7) 
      { 
       result = "Saturday"; 
      } 
      else if (weekday == 0) 
      { 
       result = "Sunday"; 
      } 
      else 
      { 
       result = "ERROR"; 
      } 
      return result; 
     } 


     public static void main(String[] args) 
     { 
      System.out.println("Weekday 1: " + weekday_name(1)); 
      System.out.println("Weekday 2: " + weekday_name(2)); 
      System.out.println("Weekday 3: " + weekday_name(3)); 
      System.out.println("Weekday 4: " + weekday_name(4)); 
      System.out.println("Weekday 5: " + weekday_name(5)); 
      System.out.println("Weekday 6: " + weekday_name(6)); 
      System.out.println("Weekday 7: " + weekday_name(7)); 
      System.out.println("Weekday 0: " + weekday_name(0)); 
      System.out.println(); 
      System.out.println("Weekday 43: " + weekday_name(43)); 
      System.out.println("Weekday 17: " + weekday_name(17)); 
      System.out.println("Weekday -1: " + weekday_name(-1)); 

      Calendar calender = new GregorianCalendar(); 
      int dayofWeek = calender.get(Calendar.DAY_OF_WEEK); 

      System.out.println("\nToday is a " + weekday_name(dayofWeek) + "!"); 
     } 

    } 

後,它會產生流動的輸出:

Weekday 1: Sunday 
Weekday 2: Monday 
Weekday 3: Tuesday 
Weekday 4: Wednesday 
Weekday 5: Thursday 
Weekday 6: Friday 
Weekday 7: Saturday 
Weekday 0: Sunday 

Weekday 43: ERROR 
Weekday 17: ERROR 
Weekday -1: ERROR 

Today is a Saturday! 
1

你已經有了一個錯字那裏。這是Calendar而不是Calender

2.輸出是:

Weekday 1: Sunday 
Weekday 2: Monday 
Weekday 3: Tuesday 
Weekday 4: Wednesday 
Weekday 5: Thursday 
Weekday 6: Friday 
Weekday 7: Saturday 
Weekday 0: Sunday 

Weekday 43: ERROR 
Weekday 17: ERROR 
Weekday -1: ERROR 

Today is a Saturday! 

所以看起來它爲我工作。

3.您最好使用switch語句。這是更短的和優雅的,請看:

public static String weekday_name(int weekday) 
{ 
    switch (weekday) { 
     case 1: return "Sunday"; 
     case 2: return "Monday"; 
     case 3: return "Tuesday"; 
     case 4: return "Wednesday"; 
     case 5: return "Thursday"; 
     case 6: return "Friday"; 
     case 7: return "Saturday"; 
     case 0: return "Sunday"; 
     default: return "ERROR"; 
    } 
} 

輸出是相同的,以及:)

0

揮霍和班上的錯字

Calender calender = new GregorianCalender(); 
int dayofWeek = calender.get(Calender.DAY_OF_WEEK); 

必須

Calendar calender = new GregorianCalendar(); 
int dayofWeek = calender.get(Calendar.DAY_OF_WEEK); 
0

不是100 %相關,但枚舉在這裏給出了一個優雅的解決方案...

private enum WeekDay { 
    SUNDAY, 
    MONDAY, 
    TUESDAY, 
    WEDNESDAY, 
    THURSDAY, 
    FRIDAY, 
    SATURDAY; 

    static WeekDay fromDayNumber(int dayNumber) { 
     return WeekDay.values()[dayNumber -1]; 
    } 
} 

... Calendar calender = new GregorianCalendar(); int dayofWeek = calender.get(Calendar.DAY_OF_WEEK);

System.out.println("\nToday is a " + WeekDay.fromDayNumber(dayofWeek) + "!"); 

...