我需要在方法集中设置几天。我尝试使用:
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
但这种方式只设置在星期三。
谢谢你,对不起我的英语:)
我需要在方法集中设置几天。我尝试使用:
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
但这种方式只设置在星期三。
谢谢你,对不起我的英语:)
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);
}
}
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();
}