获取当天的前一天,本周,本月,本季度的起止日期

/*本周*/
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
int dow = calendar.get(Calendar.DAY_OF_WEEK) - 2;
if (dow == -1) dow = 6;
//本周最小日期
calendar.add(Calendar.DAY_OF_YEAR, -dow);
String strDate = format1.format(calendar.getTime())+ " 00:00:00";
//本周最大日期
calendar.add(Calendar.DAY_OF_YEAR, 6);
String strDate1 = format1.format(calendar.getTime())+ " 23:59:59";
//本月
String month = format.format(new Date());
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONDAY), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
String startMonth = format1.format(calendar.getTime())+ " 00:00:00";
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONDAY), calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
String endtMonth = format1.format(calendar.getTime())+ " 23:59:59";
//季
/*当前季度的开始时间*/
int currentMonth = calendar.get(Calendar.MONTH)+1;
String startSeason = null;
if (currentMonth >= 1 && currentMonth <= 3) {
calendar.set(Calendar.MONTH, 0);
} else if (currentMonth >= 4 && currentMonth <= 6) {
calendar.set(Calendar.MONTH, 3);
} else if (currentMonth >= 7 && currentMonth <= 9){
calendar.set(Calendar.MONTH, 6);
}else if (currentMonth >= 10 && currentMonth <= 12) {
calendar.set(Calendar.MONTH, 9);
}
calendar.set(Calendar.DATE, 1);
startSeason = format1.format(calendar.getTime()) + " 00:00:00";

/*当前季度的结束时间*/
Calendar c = Calendar.getInstance();
String endMonth = null;
if (currentMonth >= 1 && currentMonth <= 3) {
c.set(Calendar.MONTH, 2);
c.set(Calendar.DATE, 31);
} else if (currentMonth >= 4 && currentMonth <= 6) {
c.set(Calendar.MONTH, 5);
c.set(Calendar.DATE, 30);
} else if (currentMonth >= 7 && currentMonth <= 9) {
c.set(Calendar.MONTH,8);
c.set(Calendar.DATE, 30);
} else if (currentMonth >= 10 && currentMonth <= 12) {
c.set(Calendar.MONTH, 11);
c.set(Calendar.DATE, 31);
}
endMonth = format1.format(c.getTime()) + " 23:59:59";



//20180403更新
SimpleDateFormat format1=new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat format3=new SimpleDateFormat("yyyy-MM");
SimpleDateFormat format=new SimpleDateFormat("yyyy");
String thisyear =format.format(new Date());
int year= Integer.parseInt(thisyear);
/*日*/
String today = format1.format(new Date());
/*本周*/
Calendar calendarW = Calendar.getInstance();
calendarW.setTime(new Date());
int dow = calendarW.get(Calendar.DAY_OF_WEEK) - 2;
if (dow == -1) dow = 6;
//本周最小日期
calendarW.add(Calendar.DAY_OF_YEAR, -dow);
String strDate = format1.format(calendarW.getTime())+ " 00:00:00";
//本周最大日期
calendarW.add(Calendar.DAY_OF_YEAR, 6);
String strDate1 = format1.format(calendarW.getTime())+ " 23:59:59";
//本月
Calendar calendarM = Calendar.getInstance();
calendarM.setTime(new Date());
String month = format3.format(new Date());
calendarM.set(calendarM.get(Calendar.YEAR), calendarM.get(Calendar.MONDAY), calendarM.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendarM.set(Calendar.DAY_OF_MONTH, calendarM.getActualMinimum(Calendar.DAY_OF_MONTH));
String startMonth1 = format1.format(calendarM.getTime())+ " 00:00:00";
calendarM.set(calendarM.get(Calendar.YEAR), calendarM.get(Calendar.MONDAY), calendarM.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendarM.set(Calendar.DAY_OF_MONTH, calendarM.getActualMaximum(Calendar.DAY_OF_MONTH));
String endtMonth = format1.format(calendarM.getTime())+ " 23:59:59";

List<Map<String, Object>> maxMonthList = systemService.findForJdbc("SELECT max(month) AS maxMonth FROM T_PDMIS_MONREPORT where status='2'", null);
Date thismonth = format3.parse(maxMonthList.get(0).get("maxMonth").toString());
Calendar calendarMM = Calendar.getInstance();
calendarMM.setTime(thismonth);
calendarMM.add(Calendar.MONTH,1);
calendarMM.set(calendarMM.get(Calendar.YEAR), calendarMM.get(Calendar.MONDAY), calendarMM.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendarMM.set(Calendar.DAY_OF_MONTH, calendarMM.getActualMinimum(Calendar.DAY_OF_MONTH));
String startMonth = format1.format(calendarMM.getTime())+ " 00:00:00";
//今年第一条
String startYear = thisyear+"-01-01 00:00:00";
if(startMonth.contains(thisyear)){
startYear=startMonth;
}
//季
/*当前季度的开始时间*/
Calendar calendar = Calendar.getInstance();
int currentMonth = calendar.get(Calendar.MONTH)+1;
String startSeason = null;
String endSeason = null;
if (currentMonth >= 1 && currentMonth <= 3) {
calendar.set(Calendar.MONTH, 0);
} else if (currentMonth >= 4 && currentMonth <= 6) {
calendar.set(Calendar.MONTH, 3);
} else if (currentMonth >= 7 && currentMonth <= 9){
calendar.set(Calendar.MONTH, 6);
}else if (currentMonth >= 10 && currentMonth <= 12) {
calendar.set(Calendar.MONTH, 9);
}
calendar.set(Calendar.DATE, 1);
startSeason = format1.format(calendar.getTime()) + " 00:00:00";

/*当前季度的结束时间*/
Calendar c = Calendar.getInstance();
if (currentMonth >= 1 && currentMonth <= 3) {
c.set(Calendar.MONTH, 2);
c.set(Calendar.DATE, 31);
} else if (currentMonth >= 4 && currentMonth <= 6) {
c.set(Calendar.MONTH, 5);
c.set(Calendar.DATE, 30);
} else if (currentMonth >= 7 && currentMonth <= 9) {
c.set(Calendar.MONTH,8);
c.set(Calendar.DATE, 30);
} else if (currentMonth >= 10 && currentMonth <= 12) {
c.set(Calendar.MONTH, 11);
c.set(Calendar.DATE, 31);
}
endSeason = format1.format(c.getTime()) + " 23:59:59";
/*取本季第一天和没有月报的第一天 大的*/
String startSeason2 = null;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt1 = df.parse(startSeason);
Date dt2 = df.parse(startMonth);
if (dt1.getTime() > dt2.getTime()) {
startSeason2=startSeason;
}else{
startSeason2=startMonth;
}