在项目中通常需要通过日期对数据进行统计,比如本月的xx数据求和,那么无非就是本月第一天和下月第一天之间的数据
1.获取某日期的前后n个月的日期
public static String getSomeMonth(String someDay, int x){
//String today = DateUtils.getToday("yyyy-MM-dd");
String today = "2015-4-2";
if(someDay==null){
someDay = today;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date now;
try {
now = sdf.parse(someDay);
Calendar cal=Calendar.getInstance();
cal.setTime(now);
cal.add(Calendar.MONTH, x);
Date yest = cal.getTime();
String yestday = sdf.format(yest);
return yestday;
} catch (ParseException e) {
e.printStackTrace();
}
return "";
}
2.获取今天的本月第一天
public static String getMonthFirstDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar
.getActualMinimum(Calendar.DAY_OF_MONTH));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(calendar.getTime());
return time;
}
3.获取今天下月的第一天
public static String getMonthFirstDay() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, calendar
.getActualMinimum(Calendar.DAY_OF_MONTH));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String time = sdf.format(calendar.getTime());
return time;
}
4.JavaScript中某日期的某月的第一天与下月的第一天
var date = new Date(someday);
date.setDate(1); //第一天
var startDate = date.getFullYear()+'-'+date.getMonth()+'-'+date.getDate();
date.setMonth(date.getMonth()+2);
var endDate = date.getFullYear()+'-'+date.getMonth()+'-'+date.getDate();