我正在寻找的是在Java中创建一周中的某几天的数组,从昨天开始直到这样最多六天的时间

 String daysWeek[] = { "Yesterday", "Today", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"};

我想以昨天和今天返回数组的前两个元素。

最初,通过使用
currentDay = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);

String daysList[] = {"Sunday", "Monday", "Tuesday", "Wednesday",
            "Thursday", "Friday", "Saturday"};

String daysWeek[] = {"Yesterday", "Today", daysList[currentDay], daysList[currentDay+1], ...};

关于daysList[currentDay]的注释将在明天返回,因为daysList数组从0开始,即如果今天说的currentDay = 3是星期二,那么它将是daysList[2]

但是我的问题在于,如果currentDay是7(表示今天是星期六),则currentDay+1(明天是)将是数组中不存在的第八个元素。

如果今天是星期三或更晚,然后是否有一次currentDay + x > 7,将currentDay设置回1,我是否可以循环四舍五入呢?

所有这些都在一种称为getDaysList(currentDay)的方法中进行,该方法返回daysWeek[]数组。

最佳答案

这里使用的一个函数是模(%)运算符。

基本上,取模运算符所做的就是取除法的其余部分,这正是您想要的。 (还记得四年级的时候,“9/2”不是4.5,而是4个余数1吗?这就是余数。)

因此,您不必:

days[currentDay + x]

用:
days[(currentDay + x) % 7]

关于取模运算符返回的值的快速示例:
 0 % 7 = 0   (0 / 7 = 0 R0)
 1 % 7 = 1   (1 / 7 = 0 R1)
 6 % 7 = 6   (6 / 7 = 0 R6)
 7 % 7 = 0   (7 / 7 = 1 R0)
 8 % 7 = 1   (8 / 7 = 1 R1)
15 % 7 = 1   (15 / 7 = 2 R1)

08-25 03:41