6

我正在寻找的是在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[]数组的方法中。

4

4 回答 4

7

这里对您有用的一个函数是( %) 运算符。

基本上,模运算符所做的是取除法的其余部分,这正是您想要的。(记得在四年级时,“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)
于 2013-03-10T18:11:30.357 回答
2
于 2017-07-10T00:47:31.887 回答
1

您可以使用余数运算符 ( %):

6 % 7 == 6
7 % 7 == 0
8 % 7 == 1
于 2013-03-10T18:16:10.480 回答
-1
import java.text.SimpleDateFormat;
import java.util.*;
class Date {</p><br>
    public static void main(String args[]) { </p><br>
    // Monday 01/27/2019 15:07:53 AM
    System.out.println("Current Day: "+new SimpleDateFormat("EEEE MM-dd-yyyy HH:mm:ss a").format(Calendar.getInstance().getTime()) );
   }
}
于 2019-01-27T19:14:16.510 回答