获取两个时间段之间的日期list,时间间隔为一个月
public static List<Date> getDateBetween(Date beginDate, Date endDate) {
List<Date> dateList = new ArrayList<>();
Calendar cd1 = Calendar.getInstance();
cd1.setTime(beginDate);
Calendar cd2 = Calendar.getInstance();
cd2.setTime(endDate);
cd2.add(Calendar.MONTH, -1);
cd2.set(Calendar.DAY_OF_MONTH, cd2.getActualMaximum(Calendar.DAY_OF_MONTH));
Date endDateBeforOneMonth = cd2.getTime();
while (beginDate.compareTo(endDateBeforOneMonth) <= 0) {
dateList.add(cd1.getTime());
cd1.add(Calendar.MONTH, 1);
beginDate = cd1.getTime();
}
dateList.add(endDate);
return dateList;
}
计算传入日期的周一日期和周末日期
private Map calculateMondayAndWeekendDate(String Date) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
java.util.Date time = sdf.parse(Date);
cal.setTime(time);
int dayWeek = cal.get(Calendar.DAY_OF_WEEK);
if (1 == dayWeek) {
cal.add(Calendar.DAY_OF_MONTH, -1);
}
cal.setFirstDayOfWeek(Calendar.MONDAY);
int day = cal.get(Calendar.DAY_OF_WEEK);
cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
Map map = new HashMap();
map.put("Monday", sdf.format(cal.getTime()));
cal.add(Calendar.DATE, 6);
map.put("Weekend", sdf.format(cal.getTime()));
return map;
}
下划线和驼峰互相转化
下划线和驼峰互相转化 侵删
private static Pattern linePattern = Pattern.compile("_(\\w)");
public static String lineToHump(String str) {
str = str.toLowerCase();
Matcher matcher = linePattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
}
matcher.appendTail(sb);
return sb.toString();
}
private static Pattern humpPattern = Pattern.compile("[A-Z]");
public static String humpToLine(String str) {
Matcher matcher = humpPattern.matcher(str);
StringBuffer sb = new StringBuffer();
while (matcher.find()) {
matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
}
matcher.appendTail(sb);
return sb.toString();
}
private boolean lLValidate(String str, int flag) {
int m = 180, n = 90, s, x;
String[] strings = str.split("\\.");
if (((x = Integer.valueOf(strings[0])) < -(s = (flag == 1 ? n : m))) ||
x > s ||
(strings.length > 1 && strings[1].length() > 6)) {
return false;
}
return true;
}