0

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

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

但这种方式只设置在星期三。

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

4

2 回答 2

1

Calendar没有按您预期的那样运行。来自 JavaDoc:

Calendar 类是一个抽象类,它提供了在特定时刻和一组日历字段(例如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等)之间进行转换的方法,以及用于操作日历字段(例如获取日期)的方法下周的。时间的瞬间可以用毫秒值表示,该值是从 1970 年 1 月 1 日 00:00:00.000 GMT(格里高利)纪元的偏移量。

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

当您使用该set方法时,您正在specific instant in time通过每个调用进行调整。所以首先它被设置为星期一然后星期三。

您可以使用 aList<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);
    }
} 
于 2013-08-17T22:50:54.837 回答
0
public static String getDay(String day,String month,String year){

    int mm = Integer.parseInt(month);
    int dd = Integer.parseInt(day);
    int yy = Integer.parseInt(year);
    LocalDate dt = LocalDate.of(yy, mm, dd);
    return dt.getDayOfWeek().toString().toUpperCase();
}
于 2018-09-15T06:54:34.360 回答