获取本年本月本季度的开始时间以及去年上月上季度的开始和结束时间
直接上代码
private static final String TIME_OF_DAY_BEGIN = " 00:00:00";
private static final String TIME_OF_DAY_END = " 23:59:59";
private static final Calendar calendar = Calendar.getInstance();
// 当前月所在季度
private static final Map quarterMap = new TreeMap(){{put(3,1);put(6,4);put(9,7);put(12,10);}};// 代码可优化,我没有时间优化
// 获取年月季度开始时间 flag = flase 是去年上月上季度的开始时间 flag=true是当前对应的开始时间
public static String getStartTimeByType(Integer dateType, boolean flag) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd" + TIME_OF_DAY_BEGIN);String date = null;switch (dateType) {case 2://月if (flag) {calendar.add(Calendar.MONTH, 0);} else {calendar.add(Calendar.MONTH, -1);}calendar.set(Calendar.DAY_OF_MONTH, 1);date = format.format(calendar.getTime());break;case 3://季int month = calendar.get(Calendar.MONTH) + 1;int type = 0;Set keySet = quarterMap.keySet();for (Integer s : keySet) {if (month <= s) {s = flag ? s : s - 3;type = quarterMap.get(s);break;}}calendar.add(Calendar.MONTH, type - month);calendar.set(Calendar.DAY_OF_MONTH, 1);date = format.format(calendar.getTime());break;case 4://年if (flag) {calendar.add(Calendar.YEAR, 0);} else {calendar.add(Calendar.YEAR, -1);}calendar.add(Calendar.YEAR, 0);calendar.set(Calendar.DAY_OF_YEAR, 1);date = format.format(calendar.getTime());break;}return date;}// 按照月季年获取结束时间public static String getEndTimeByType(Integer dateType) {SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd" + TIME_OF_DAY_END);Calendar calendar = Calendar.getInstance();String date = null;switch (dateType) {case 2://月calendar.add(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_MONTH, calendar.getMaximum(Calendar.DATE));date = format.format(calendar.getTime());break;case 3: //季int month = calendar.get(Calendar.MONTH) + 1;int type = 0;Set keySet = quarterMap.keySet();for (Integer s : keySet) {if (month <= s) {type = Constants.quarterMap.get(s);break;}}calendar.add(Calendar.MONTH, type - month);calendar.set(Calendar.DAY_OF_MONTH, calendar.getMaximum(Calendar.DATE) - 1);date = format.format(calendar.getTime());break;case 4: //年calendar.add(Calendar.YEAR, 0);calendar.set(Calendar.DAY_OF_YEAR, 0);date = format.format(calendar.getTime());break;}return date;}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
