package cn.Time;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
/**
* @author by zhoushupeng
* @date 2019/07/05
**/
public class QuarterDeal {
final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) {
String startDate = "2019-01-15";
startDate = quarterStart(startDate);
System.out.println("当前时间所属季度第一个月第一天:"+startDate);
String endDate = "2019-01-15";
endDate = quarterEnd(endDate);
System.out.println("当前时间所属季度最后一个月最后一天:"+endDate);
}
/*
* @description: 获取当前时间所属季度开始月第一天
* @param: startDate
* @return: startDate
* @author: zhoushupeng
* @date: 19/7/5 上午11:11
*/
public static String quarterStart(String startDate) {
Date dBegin = null;
try {
dBegin = sdf.parse(startDate);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(dBegin);
int remainder = calBegin.get(Calendar.MONTH) % 3;
int month = remainder != 0 ? calBegin.get(Calendar.MONTH) - remainde: calBegin.get(Calendar.MONTH);
calBegin.set(Calendar.MONTH, month);
calBegin.set(Calendar.DAY_OF_MONTH, calBegin.getActualMinimum(Calendar.DAY_OF_MONTH));
calBegin.setTime(calBegin.getTime());
return sdf.format(calBegin.getTime());
}
/*
* @description: 获取当前时间所属季度结束月最后一天
* @param: endDate
* @return: endDate
* @author: zhoushupeng
* @date: 19/7/5 上午11:18
*/
public static String quarterEnd(String endDate) {
Date dEnd = null;
try {
dEnd = sdf.parse(endDate);
} catch (Exception e) {
e.printStackTrace();
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(dEnd);
int remainder = (calendar.get(Calendar.MONTH) + 1) % 3;
int month = remainder != 0 ? calendar.get(Calendar.MONTH) + (3 - remainder) : calendar.get(Calendar.MONTH);
calendar.set(Calendar.MONTH, month);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
calendar.setTime(calendar.getTime());
return sdf.format(calendar.getTime());
}
}