public static void main(String[] args) throws ParseException {
String forecastStartDate ="2017-02-11";
String forecastEndDate="2017-05-23";
String forecastEnd;
//定义日期实例
Calendar calendar = Calendar.getInstance();
try {
//定义起始日期
Date start = new SimpleDateFormat("yyyy-MM-dd").parse(forecastStartDate);
//定义结束日期
Date end = new SimpleDateFormat("yyyy-MM-dd").parse(forecastEndDate);
//设置日期起始时间
calendar.setTime(start);
while(calendar.getTime().before(end)){//判断是否到结束日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdf.format(calendar.getTime());
forecastEnd = DateTools.getMaxMonthDate(str);
//queryCheck.put("forecastStartDate", forecastStartDate);
// System.out.println(str);
String forecastStart=DateTools.getMinMonthDate(str);
if (!forecastStartDate.substring(0, forecastEnd.lastIndexOf("-")).equals(str.substring(0, str.lastIndexOf("-")))) {
System.out.println(forecastStart);
if (forecastEnd.substring(0, forecastEnd.lastIndexOf("-")).equals(forecastEndDate.substring(0, str.lastIndexOf("-")))) {
System.out.println(forecastEndDate);
break;
}else {
System.out.println(forecastEnd);
calendar.add(Calendar.MONTH, 1);
continue;
}
}
//queryCheck.put("forecastEndDate", forecastEnd);
System.out.println(str);
System.out.println(forecastEnd);
// 查询结果集
//List<StationChenk> stationChenkList = dao.getCheckValue(queryCheck);
calendar.add(Calendar.MONTH, 1);//进行当前日期月份加1
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
calendar.add(Calendar.MONTH, 1) 这行代码可以实现月份、日期、小时的累加,可以满足大多数的要求;
前提是必须要新建一个时间类如下:
package com.supermap.gwfs.check.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import com.supermap.gwfs.check.entity.StationChenk;
/**
* 时间换算工具类
*
* @author mincha
*
*/
public class DateTools {
// 引入calendar类
Calendar calendar = Calendar.getInstance();
static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
/**
* 获取月份起始日期
*
* @param date
* @return
* @throws ParseException
*/
public static String getMinMonthDate(String date) throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateFormat.parse(date));
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMinimum(Calendar.DAY_OF_MONTH));
return dateFormat.format(calendar.getTime());
}
/**
* 获取月份最后日期
*
* @param date
* @return
* @throws ParseException
*/
public static String getMaxMonthDate(String date) throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateFormat.parse(date));
calendar.set(Calendar.DAY_OF_MONTH,
calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
return dateFormat.format(calendar.getTime());
}
/**
* 获取日期年份
*
* @param date
* @return
* @throws ParseException
*/
public static int getYear(String date) throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateFormat.parse(date));
return calendar.get(Calendar.YEAR);
}
/**
* 获取日期月份
*
* @param date
* @return
* @throws ParseException
*/
public static int getMonth(String date) throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateFormat.parse(date));
return (calendar.get(Calendar.MONTH) + 1);
}
/**
* 获取日期号
*
* @param date
* @return
* @throws ParseException
*/
public static int getDay(String date) throws ParseException {
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateFormat.parse(date));
return calendar.get(Calendar.DAY_OF_MONTH);
}
}