日期格式转换
/**
* String类型转Date
*
* @param date
* @return
*/
public static Date formatData(String date) {
Date parse = null;
try {
String strDateFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
parse = sdf.parse(date);
} catch (ParseException e) {
e.getMessage();
}
return parse;
}
/**
* Date类型转String
*
* @param date
* @return
*/
public static String formatTime(Date date) {
String strDateFormat = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
return sdf.format(date);
}
获取当前日期的第一天和最后一天
/**
* 获取当前日期所在月份的最后一天
*/
public static String getMonthLastDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
}
/**
* 获取当前日期所在月份的第一天
*
* @param date
* @return
*/
public static String getMonthFirstDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1);
calendar.add(Calendar.MONTH, 0);
return new SimpleDateFormat("yyyy-MM-dd").format(calendar.getTime());
}
获取当前日期所在月的除去周六周日的天数
/**
* 获取当前日期所在月的除去周六周日的天数
*
* @param bizDate yyyy-MM-dd
* @return
*/
public static int getDutyDays(String bizDate) {
Date startTime = formatData(bizDate);
String startDateStr = getMonthFirstDay(startTime);
String endDateStr = getMonthLastDay(startTime);
log.info("当前日期所在月份的第一天为======{}",startDateStr);
log.info("当前日期所在月份的最后一天为======{}",endDateStr);
Date startDate = formatData(startDateStr);
Date endDate = formatData(endDateStr);
int result = 0;
while (startDate.compareTo(endDate) <= 0) {
if (startDate.getDay() != 6 && startDate.getDay() != 0) {
result++;
}
startDate.setDate(startDate.getDate() + 1);
}
return result;
}