我有一个ArrayList,其中包含一周中的每一天。该函数有两个参数:星期几和一个整数值,用于增加天数。
例如,如果当前日期为星期一,整数值为3,则应返回星期三。
它还需要能够“循环”,所以如果当前日期是星期天,值是2,则应该返回星期二。
下面是我到目前为止的内容,它仅返回currentDay。我对Java真的很陌生,所以任何帮助都会很棒。
import java.util.ArrayList;
public class DaysOfWeek {
public static void main(String[] args) {
System.out.println(calcDay("Tue", 2));
}
public static String calcDay(String currentDay, int incrementDays) {
ArrayList<String> days = new ArrayList<String>();
days.add(0,"mon");
days.add(1,"tue");
days.add(2,"wed");
days.add(3,"thu");
days.add(4,"fri");
days.add(5,"sat");
days.add(6,"sun");
if((days.contains(currentDay.toLowerCase())) && ((incrementDays >= 0) && (incrementDays <= 500))) {
for(int i = days.indexOf(currentDay.toLowerCase()); i < incrementDays+1; i++) {
String newDay = days.get(i);
return newDay;
}
} return "Invalid";
}
}
您可以简单地使用模运算符。
public static String calcDay(String currentDay, int incrementDays) {
ArrayList<String> days = new ArrayList<String>();
days.add(0,"mon");
days.add(1,"tue");
days.add(2,"wed");
days.add(3,"thu");
days.add(4,"fri");
days.add(5,"sat");
days.add(6,"sun");
int currentIndex = days.indexOf(currentDay.toLowerCase());
int newDayIndex = (currentIndex + incrementDays) % 7;
return days.get(newDayIndex);
}
嗯,您可以将String newDay = days.get(i);
更改为:
String newDay = days.get((i+incrementDays) % 7);
这会循环到一周的开始。您传入了增量,但忘记了使用它。 :)