2015-05-05 60 views
-1

我試圖編寫一個程序,通過給出一個數字來計算每週的幾天。我想寫這不使用數組,或枚舉類型,只是方法我怎麼能這樣做?我也希望能夠以本週的一天爲起點。處理本週的幾天

感謝

public static void main(String[] args); 
{ 
    int sunday, monday, tuesday, wednesday, thursday, friday, saturday; 
    int week; 
    int day; 

    System.out.println(" Day of the week is" + day); 

    public void count() 


    public void week() 

    public void printday() 

    public void nextday() 

    public void previousday() 

我不是最好的,但我的身影熟能生巧

+1

使用ArrayList代替陣列 – Lrrr

+1

你可以用'ENUMS' –

+0

@AfsunKhammadli'我想寫這不使用陣列,或枚舉types' – Dici

回答

1

這應該做你的伎倆,如果我理解正確你的問題:)

/** 
* 
* @param startingDay - day of the week starting point (need to be between 0-6) 
* @param noDays number of days to count 
* @return result Day of the week 
*/ 
private static WeekDays getWeekDay(int startingDay, int noDays){ 
    int dayNr = noDays % 7; 
    int finalDayNr = (startingDay + dayNr) % 7; 
    return WeekDays.values()[finalDayNr]; 
} 

private static enum WeekDays { 
    SUNDAY, 
    MONDAY, 
    TUESDAY, 
    WEDNESDAY, 
    THURSDAY, 
    FRIDAY, 
    SATURDAY 
} 

並沒有ENUM的版本,但是枚舉版本最好......從任何角度來看你可能會想到。

/** 
* 
* @param startingDay 
*   - day of the week starting point (need to be between 0-6) 
* @param noDays 
*   number of days to count 
* @return result Day of the week 
*/ 
private static String getWeekDay(int startingDay, int noDays) { 
    int dayNr = noDays % 7; 
    int finalDayNr = (startingDay + dayNr) % 7; 
    return getDay(finalDayNr); 
} 

private static String getDay(int dayNr) { 
    switch (dayNr) { 
    case 0: 
     return "SUNDAY"; 
    case 1: 
     return "MONDAY"; 
    case 2: 
     return "TUESDAY"; 
    case 3: 
     return "WEDNESDAY"; 
    case 4: 
     return "THURSDAY"; 
    case 5: 
     return "FRIDAY"; 
    case 6: 
     return "SATURDAY"; 
    } 
    throw new IllegalArgumentException("Wrong input. Day nr must be between 0-6."); 
} 

用法樣品(對於任何兩個方法):

public static void main(String[] args) { 
    System.out.println(getWeekDay(0, 15)); 
    System.out.println(getWeekDay(1, 15)); 
    System.out.println(getWeekDay(5, 3)); 
} 
+0

他做不想枚舉或數組,你正在使用 – Dici

+0

你在開玩笑嗎? :) – Alex

+2

不,所以我不會回答這樣的問題。糟糕的問題會導致錯誤的答案,因爲我們應該基本上告訴他,如果沒有枚舉,他不應該嘗試它,即使這可能是 – Dici

1

這看起來像功課,但如果你不打算使用天的數組,我猜您可以在一週中的某幾天使用switch聲明。

此特定樣本從第3天(0星期一)到第14天迭代。

for (int i = 3; i < 15; i++) { 
    String s = null; 
    switch (i % 7) { 
     case 0: s = "Monday"; break; 
     case 1: s = "Tuesday"; break; 
     case 2: s = "Wednesday"; break; 
     case 3: s = "Thursday"; break; 
     case 4: s = "Friday"; break; 
     case 5: s = "Saturday"; break; 
     case 6: s = "Sunday"; break; 
    } 
    System.out.println(s); 
} 
-1
public static void main(String[] args) { 

    int day = 1; 

    System.out.println(isWeek(day)); 
    printday(day); 

} 

public static boolean isWeek(int day) { 
    // Sunday or Saturday 
    if (day == 1 || day == 7) { 
     return false; 
    } 

    return true; 
} 

public static void printday(int day) { 
    switch (day) { 
    case 1: 
     System.out.println("Sunday"); 
     break; 
    case 2: 
     System.out.println("Monday"); 
     break; 
    // Until Saturday 

    default: 
     break; 
    } 
} 

爲代碼但不陣列或枚舉成才那樣?

相關問題