|
|
@ -4,6 +4,11 @@ import org.apache.commons.lang.time.DateUtils;
|
|
|
|
|
|
|
|
|
|
|
|
import java.text.ParseException;
|
|
|
|
import java.text.ParseException;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
|
|
|
import java.time.ZoneId;
|
|
|
|
|
|
|
|
import java.time.ZonedDateTime;
|
|
|
|
|
|
|
|
import java.time.temporal.TemporalAdjusters;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -190,5 +195,78 @@ public class DateReportUtils {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 获取本月剩余天数(除去星期天)
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static Integer getMonthRemainingDays() {
|
|
|
|
|
|
|
|
// Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:OO")); //这是获得东八区时间,也就是北京时间
|
|
|
|
|
|
|
|
// int day = c.get(Calendar.DAY_OF_MONTH); //获取当前天数
|
|
|
|
|
|
|
|
// int last = c.getActualMaximum(c.DAY_OF_MONTH); //获取本月最大天数
|
|
|
|
|
|
|
|
Integer result = 0;
|
|
|
|
|
|
|
|
LocalDate localDate = LocalDate.now();
|
|
|
|
|
|
|
|
LocalDate lastDay = localDate.with(TemporalAdjusters.lastDayOfMonth());
|
|
|
|
|
|
|
|
List<Date> dateList = getBetweenDates(localDate2Date(localDate), localDate2Date(lastDay));
|
|
|
|
|
|
|
|
for (Date date : dateList) {
|
|
|
|
|
|
|
|
if (!getWeekOfDate(date).equals("星期日")){
|
|
|
|
|
|
|
|
result += 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* LocalDate转换成Date
|
|
|
|
|
|
|
|
* @param localDate
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static Date localDate2Date(LocalDate localDate) {
|
|
|
|
|
|
|
|
if(null == localDate) {
|
|
|
|
|
|
|
|
return null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ZonedDateTime zonedDateTime = localDate.atStartOfDay(ZoneId.systemDefault());
|
|
|
|
|
|
|
|
return Date.from(zonedDateTime.toInstant());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 获取当前日期是星期几<br>
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
* @param date
|
|
|
|
|
|
|
|
* @return 当前日期是星期几
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static String getWeekOfDate(Date date) {
|
|
|
|
|
|
|
|
String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
|
|
|
|
|
|
|
|
Calendar cal = Calendar.getInstance();
|
|
|
|
|
|
|
|
cal.setTime(date);
|
|
|
|
|
|
|
|
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
|
|
|
|
|
|
|
|
if (w < 0)
|
|
|
|
|
|
|
|
w = 0;
|
|
|
|
|
|
|
|
return weekDays[w];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* 获取日期List
|
|
|
|
|
|
|
|
* @param start
|
|
|
|
|
|
|
|
* @param end
|
|
|
|
|
|
|
|
* @return
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
public static List<Date> getBetweenDates(Date start, Date end) {
|
|
|
|
|
|
|
|
List<Date> result = new ArrayList<Date>();
|
|
|
|
|
|
|
|
Calendar tempStart = Calendar.getInstance();
|
|
|
|
|
|
|
|
tempStart.setTime(start);
|
|
|
|
|
|
|
|
result.add(tempStart.getTime());
|
|
|
|
|
|
|
|
tempStart.add(Calendar.DAY_OF_YEAR, 1);
|
|
|
|
|
|
|
|
Calendar tempEnd = Calendar.getInstance();
|
|
|
|
|
|
|
|
tempEnd.setTime(end);
|
|
|
|
|
|
|
|
while (tempStart.before(tempEnd)) {
|
|
|
|
|
|
|
|
result.add(tempStart.getTime());
|
|
|
|
|
|
|
|
tempStart.add(Calendar.DAY_OF_YEAR, 1);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
result.add(tempEnd.getTime());
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|