本周领导让本人做一个账单查询,我们是做金融的,这个账单查询呢,是根据日期来查询,日期分为周六日、十一,春节和其他节假日,比如元旦、清明、等,所查的周期也不一样
思路:新建一个数据库:calendar,里面将所有节假日的开始时间和结束时间存进去,并建立一个类型字段将之区分开,如下图:
周六日不用,周六日可以直接用工具类来完成判断,工具类在这有,各种日期的大全:https://github.com/panshujun/DateUtils.git
下面附上代码:
//调用工具类判断本日期是否是星期五
String week = DateUtil.getWeekOfDate(date);
List<AssetsRepaypanMap> list = new ArrayList<AssetsRepaypanMap>();
JSONArray array = new JSONArray();
//根据时间查询是否是节假日
List<AssetsCalendarFormMap> calendarFormMaps = assetsCalendarDao.findCalendar(querytime);
if (calendarFormMaps.size() > 0) {
AssetsCalendarFormMap calendarFormMap = calendarFormMaps.get(0);
String type1 = calendarFormMap.getStr("type");
if (type1.equals("c")) {
list = new ArrayList<>();
}
String endDate = calendarFormMap.getStr("endDate");
if (type1.equals("a")) { //如果是a,则quetime为开始时间,endDate为结束时间
list = repayplanDao.findByCreatetimeReoayplan(querytime, endDate,channelStr);
}
if (type1.equals("b")){
list = repayplanDao.findByCreatetimeReoayplan(endDate, querytime,channelStr);
}
} else if (week.equals("5")) {
String date1 = DateUtil.getSpecifiedDayAfter(querytime, 1);
String date2 = DateUtil.getSpecifiedDayAfter(date1, 1);
list = repayplanDao.findByCreatetimeReoayplan(querytime, date2,channelStr);
} else if (week.equals("6") || week.equals("7")) {
list=new ArrayList<>();
}else{ //正常日期
list = repayplanDao.findByCreatetimeReoayplan(querytime.trim(), querytime.trim(),channelStr);
}