一个选择时间的需求 需要获取某年的全部Date集合. 以下是实现:
public List getAllDateByNow(){
List list = new ArrayList<>();
Date nowDate = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(nowDate);
int year = calendar.get(Calendar.YEAR);
int count =355;
//获取今年是否是闰年
if ((year %4 ==0 && year %100 !=0) || (year %400 ==0)) {
count =366;
}
int nowDayOfYear = calendar.get(Calendar.DAY_OF_YEAR);//获取今天是本年的第几天
for (int i =1; i < count +1; i++) {
//平移日期 这里的值有正负 比如 今天是5 那么今年的第一天的时间是今天平移(0 - 5)后的时间
calendar.add(Calendar.DATE, i -nowDayOfYear);
Date date = calendar.getTime();
list.add(calendar.getTime());
calendar.add(Calendar.DATE, nowDayOfYear - i);//复原为平移前的值 以便下一次循环操作
}
return list;
}