如何在Calendar.DAY_OF_WEEK上设置几天

时间:2013-08-17 22:48:05

标签: java calendar java.util.calendar

我需要在方法集中设置几天。我尝试使用:

c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);

但这种方式只在周三设定。

谢谢你,对不起我的英语:)

1 个答案:

答案 0 :(得分:1)

Calendar无法按预期运行。来自JavaDoc:

  

Calendar类是一个提供方法的抽象类   在特定时刻和一组日历之间转换   字段,例如YEAR,MONTH,DAY_OF_MONTH,HOUR等,以及for   操纵日历字段,例如获取下一个日期   周。瞬间可以用毫秒值表示   这是格林威治标准时间1970年1月1日00:00:00 GMT的偏差   (阳历)。

请注意,文档说明了specific instant in time。这意味着Calendar只能基于纪元的一个时间点。

当您使用set方法时,您通过每次调用调整specific instant in time。所以首先将它设置为星期一,然后是星期三。

您可以使用List<Calendar>存储设置为所需日期的多个Calendar个实例。

public class CalendarTest {
    public static void main(String[] args) {
        Calendar cal1 = Calendar.getInstance();
        Calendar cal2 = Calendar.getInstance();
        cal1.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
        cal2.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);

        List<Calendar> calendars = Arrays.asList(cal1, cal2);
    }
}