這應該做你的伎倆,如果我理解正確你的問題:)
/**
*
* @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));
}
使用ArrayList代替陣列 – Lrrr
你可以用'ENUMS' –
@AfsunKhammadli'我想寫這不使用陣列,或枚舉types' – Dici