1.使用Calendar获取时间,根据条件获取本月或本季度的最后一天
// 将日期设置到Calendar对象中
//默认获取当前时间
Calendar calendar = Calendar.getInstance();
//DAY_OF_MONTH 用来获得这一天在是这个月的第多少天
//DAY_OF_YEAR 用来获得这一天在是这个年的第多少天
int year = calendar.get(Calendar.YEAR);//年
int month= calendar.get(Calendar.MONTH) + 1; //月
int days= calendar.get(Calendar.DATE);//日
//本月
if(yanghushijian.equals("1"))
{
//获取当前月的最后一天
calendar.set(Calendar.DAY_OF_MONTH, 1);///*设置实例中天数为:本月1号;
calendar.add(Calendar.MONTH, 1);//*将本月+1
calendar.add(Calendar.DATE, -1);//日期-1
int lastDay = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println(lastDay);
nowday=year+"-"+month+"-"+days;
lastday=year+"-"+month+"-"+lastDay;
}
//本季度
else if(yanghushijian.equals("2"))
{
// 获取当前季度的最后一天
int currentQuarter = (calendar.get(Calendar.MONTH) / 3) + 1;
calendar.set(Calendar.MONTH, currentQuarter * 3);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.DATE, -1);
int lastDayOfQuarter = calendar.get(Calendar.DAY_OF_MONTH);
int month2=calendar.get(Calendar.MONTH) + 1;
nowday=year+"-"+month+"-"+days;
lastday=year+"-"+month2+"-"+lastDayOfQuarter;
}//自定义
else if(yanghushijian.equals("3"))
{
nowday=qishishijian;
lastday=jieshushijian;
}
2.根据起止时间,获取每一天的天数,根据时间间隔频率,获取间隔的时间日期,并保存起来
//根据时间段获取每一天
int pinlv=Integer.parseInt(yanghupinlv);
int x=pinlv;
List list0 = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd ");
Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse(nowday);
Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(lastday);
//能获取当前的时间,还能指定需要获取的时间点
Calendar cal = Calendar.getInstance();
cal.setTime(date0);
while(cal.getTime().compareTo(date1)<=0){
list0.add(sdf.format(cal.getTime()));
Date shijian=cal.getTime();
//如果是当前频率就添加
if(x==pinlv) {
}
cal.add(Calendar.DAY_OF_MONTH,1);
x++;
}