java中的Calendar运用。。。不是很懂,求各位大神教教

假如:2017-5-22 到 2017-7-22,这两个日期,我要把它分成三个阶段。。。就像这种结果:第一阶段=2017-5-22~2017-5-31 第二阶段=2017-6-1~2017-6-30 第三阶段=2017-7-1~2017-7-22

最后一个阶段的结束日期是和条件的结束日期一样的。。。。这样怎么弄啊,搞了半天就是搞不出来,求大神指教。。

你是不是取当期月的第一天和最后一天不对啊,我这段代码你看看:

 public class dateFormat {  
    public static void main(String[] args) throws ParseException {  
        Calendar calendar=new GregorianCalendar();  
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
        SimpleDateFormat mf=new SimpleDateFormat("yyyy-MM");  
        String s="2013-12";  
        Date date=mf.parse(s);  
        System.out.println("按月格式化:"+date);  
        System.out.println("按天格式化:"+sdf.format(date));  
        calendar.setTime(date);  
        System.out.println("获取设置Calendar时间:"+calendar.getTime());  
        calendar.add(calendar.DATE, 0); 
        System.out.println("获取指定月的第一天:"+sdf.format(calendar.getTime()));  
        calendar.roll(calendar.DATE, -1);  
        System.out.println("获取指定月的最后一天:"+sdf.format(calendar.getTime()));  
    }  
}

输出结果是这样:
图片说明

你是想将每个月各自区分出来? 你分成三个阶段的目的是什么?

你去看看怎么取一个月的最后一天和第一天,这样就分开了

图片说明看看。。。这就是我做出来的结果。。。。。不知道为什么老是这样,不是多加几个月,就是少几个月