我正在寻找的是在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)