Java 如何在Calendar.DAY\u OF_WEEK上设置一些天

Java 如何在Calendar.DAY\u OF_WEEK上设置一些天,java,calendar,java.util.calendar,Java,Calendar,Java.util.calendar,我需要在方法集中设置一些天。我尝试使用: c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY); 但这条路只定在周三 感谢您并为我的英语感到抱歉:)日历的功能不符合您的预期。从JavaDoc: Calendar类是一个抽象类,它为 在特定时间和一组日历之间转换 字段,如年、月、月的日、小时等,以及 操作日历字段,例如获取下一个日历的日期 周。时间上的一个瞬间可以

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

c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
但这条路只定在周三


感谢您并为我的英语感到抱歉:)

日历的功能不符合您的预期。从JavaDoc:

Calendar类是一个抽象类,它为 在特定时间和一组日历之间转换 字段,如年、月、月的日、小时等,以及 操作日历字段,例如获取下一个日历的日期 周。时间上的一个瞬间可以用毫秒值表示 这是从1970年1月1日00:00:00.000 GMT的纪元偏移量 (格里高利)

请注意,文档中说明了一个
特定的时间瞬间
。这意味着
日历只能基于历元中的一个时间点

当您使用
set
方法时,您正在通过每次调用调整
特定的时间瞬间。所以先定在周一,然后定在周三

您可以使用
列表
存储设置为所需日期的多个
日历
实例

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);
    }
} 
公共类日历测试{
公共静态void main(字符串[]args){
Calendar cal1=Calendar.getInstance();
Calendar cal2=Calendar.getInstance();
cal1.set(日历。星期几,日历。星期一);
cal2.set(日历。星期几,日历。星期三);
列表日历=Arrays.asList(cal1,cal2);
}
} 

您能提供更多关于您打算做什么的信息吗
java.util.Calendar
与谷歌日历或类似日历完全不同,它只代表一个给定的日期时间(可能这就是混乱的根源)。谢谢你,我能用不同的方式实现吗?@Maxim很高兴我能帮上忙!感谢您演示如何使用现代的
LocalDate
类,而不是过时且设计拙劣的
日历
。当我读到这个问题时,你并没有完全理解被问到的问题。
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();
}