/**
*获取某月最初一天
*
*/
public static Date getMonthAnyStartDay(Date date,int start) throws ParseException{
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Calendar caleFirst = Calendar.getInstance(TimeZone.getTimeZone("Japan") ,Locale.JAPAN);
caleFirst.setTime(date);
caleFirst.add(Calendar.MONTH, start);
caleFirst.set(Calendar.DAY_OF_MONTH,1);
Date firstDay = format.parse(format.format(caleFirst.getTime()));
return firstDay;
}
/**
*获取某月最后一天
*
* */
public static Date getMonthAnyEndDay(Date date,int end) throws ParseException{
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
Calendar caleLast = Calendar.getInstance(TimeZone.getTimeZone("Japan") ,Locale.JAPAN);
caleLast.setTime(date);
caleLast.add(Calendar.MONTH, end);
caleLast.set(Calendar.DAY_OF_MONTH, caleLast.getActualMaximum(Calendar.DAY_OF_MONTH));
Date lastDay = format.parse(format.format(caleLast.getTime()));
return lastDay;
}
/**
复制代码
*获取某月份的前几月或者后几月
*
*/
public static Date getMonthStart(Date date,int month) throws ParseException{
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM");
Calendar caleFirst = Calendar.getInstance(TimeZone.getTimeZone("Japan") ,Locale.JAPAN);
caleFirst.setTime(date);
caleFirst.add(Calendar.MONTH, month);
Date m3 = caleFirst.getTime();
return m3;
}
/**
*
计算两个日期间相差天数
*/
public static long dayDiff(String startDate, String endDate,String format) {
SimpleDateFormat formater = new SimpleDateFormat(format);
long diff = 0l;
try {
long d1 = formater.parse(startDate).getTime();
long d2 = formater.parse(endDate).getTime();
diff = (d1 - d2) / (1000 * 60 * 60 * 24);
} catch (ParseException e) {
e.printStackTrace();
}
return diff;
}
/**
*获取某天的前几天或者后几天
*
*/
public static Date addDate(Date date, int days) {
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Japan") ,Locale.JAPAN);
cal.setTime(date);
cal.add(Calendar.DATE, days);
return cal.getTime();
}