时间方面的处理,反射判断所以的属性值是否都为空,sql处理,bo处理

//转换周期
private String[] getTimes(int year, int month, int week) throws SerException {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
int weekNum = calendar.getActualMaximum(Calendar.WEEK_OF_MONTH);
calendar.set(Calendar.WEEK_OF_MONTH, week);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String start = dateFormat.format(calendar.getTime());
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
String end = dateFormat.format(calendar.getTime());
LocalDate e = DateUtil.parseDate(end);
if (week == 1) {
if (String.valueOf(month).length() == 1) {
start = year + "-0" + month + "-01";
} else {
start = year + "-" + month + "-01";
}
}
if (week == weekNum) {
if (month != e.getMonthValue()) {
e = DateUtil.parseDate(end);
e = e.minusDays(e.getDayOfMonth());
}
}
String endTime = e.toString();
String[] time = new String[]{start, endTime};
return time;
}

 

//获取当天是本月第几周
Calendar c = Calendar.getInstance();
week = c.get(Calendar.WEEK_OF_MONTH);//获取是本月的第几周


//获取指定时间的开始时间和结束时间(00:00:00---23:59:59)
public static void main(String[] args) {
LocalDate now = LocalDate.now();
LocalDateTime start = now.atStartOfDay();
LocalDateTime end = start.plusDays(1).minusNanos(1);

System.out.println(start);
System.out.println(end);
}


//获取LocalDate类型这一天的开始时间和结束时间
String start = DateUtil.dateToString(LocalDate.parse(summTime).atTime(00,00,01));
String end = DateUtil.dateToString(LocalDate.parse(summTime).atTime(23,59,59));

//将年月转换成LocalDateTime类型或者LocalDate类型时间
//DateUtil.getDayByDate(year,month)获取year这一年的month这一个月的天数
String startDate = DateUtil.dateToString(LocalDateTime.of(year,month,1,00,00,01));
String endDate = DateUtil.dateToString(LocalDateTime.of(year,month,DateUtil.getDayByDate(year,month),23,59,59));


//发送邮件时汇总间隔(每天,每周,每月,每年)获取他们的开始时间和结束时间
public String[] changDateTime(CollectUnit collectUnit) {
LocalDateTime start = LocalDateTime.now();
LocalDateTime end = LocalDateTime.now();
switch (collectUnit) {
case EVERYDAY:
start = LocalDate.now().atTime(00, 00, 01);
end = LocalDate.now().atTime(23, 59, 59);
break;
case EVERYWEEK:
start = DateUtil.getStartWeek().atStartOfDay();
end = DateUtil.getEndWeek().atStartOfDay().plusDays(1).minusNanos(1);
break;
case EVERYMONTH:
start = DateUtil.getStartMonth().atStartOfDay();
end = DateUtil.getEndMonth().atStartOfDay().plusDays(1).minusNanos(1);
break;
case EVERYYEAR:
start = DateUtil.getStartYear().atStartOfDay();
end = DateUtil.getEndYear().atStartOfDay().plusDays(1).minusNanos(1);
break;
default:
start = LocalDate.now().atStartOfDay();
end = start.plusDays(1).minusNanos(1);
break;
}
return new String[]{start.toString(), end.toString()};
}

//获取指定日是本月的第周几
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
Date date = Date.from(instant);
String[] weeks = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

Calendar cal = Calendar.getInstance();

cal.setTime(date);

int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;

if(week_index<0){

week_index = 0;

}

System.out.println(weeks[week_index]);
}

 

 

//获取指定日期的后三天
LocalDate time=DateUtil.parseDate(date);
time.plusDays(3);

//获取指定日期的前三天
LocalDate time=DateUtil.parseDate(date);
time.minusDays(3)

//获取指定日期的前一个月
LocalDate time=DateUtil.parseDate(date);
time.minusMonths(3);

//获取指定日期的前一个周
LocalDate time=DateUtil.parseDate(date);
time.minusWeeks(3);

 

//反射所有的属性判断这些属性值是否都为空
public Boolean isCheckNull(Object obj){
Boolean bool = false;
if(null==obj){
bool = false;
}
for (Field f : obj.getClass().getDeclaredFields()) {
String name = f.getName(); // 获取属性的名字
name = name.substring(0, 1).toUpperCase() + name.substring(1);// 将属性的首字符大写,方便构造get,set方法
try {
Method m = obj.getClass().getMethod("get" + name);
Object value = m.invoke(obj);// 调用getter方法获取属性值
if (null!=value && !value.equals("")) { //判断该属性值是否为空
bool = true;
}
} catch (Exception e) {

}

}
return bool;
}

 


//mysql 的 GROUP_CONCAT()方法,将多条数据的指定字段进行合并起来
SELECT GROUP_CONCAT(competitorsName) AS competitorsName FROM market_marketinforecord

 

//查出来的的数据放入BO中然后将这个BO中的数据进行分页
CustomerBaseInfoDTO customerBaseInfoDTO = new CustomerBaseInfoDTO();
int limit = customerBaseInfoDTO.getLimit();
int start = limit * customerBaseInfoDTO.getPage();
List<CustomerBaseInfo> customerBaseInfoList = customerBaseInfos.stream().skip(start).limit(limit).collect(Collectors.toList());

//查出来的的数据放入BO中然后将这个BO中的数据进行按照相应字段排序
Collections.sort(customerBaseInfos, new Comparator<CustomerBaseInfo>() {
@Override
public int compare(CustomerBaseInfo o1, CustomerBaseInfo o2) {
return o2.getFinalWeight().compareTo(o1.getFinalWeight());
}
});

 

posted @ 2018-04-01 14:57  备储小屁孩  阅读(284)  评论(0编辑  收藏  举报