4
回答
java 按月拆分日期怎么弄啊?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

比如: 2012-8-12 到 2012-10-5 , 拆分成

2012-8-12到2012-8-31
2012-9-1到2012-9-30
2012-10-1到2012-10-5

程序怎么实现啊?

举报
删除
发帖于5年前 4回/1K+阅
共有4个答案 最后回答: 5年前

1.起止时间是同一年,得到月列表;起止时间不是同一年,先得到年列表,再根据起止时间得到月列表。

2.计算每月天数及起止时间得到拆分。

 // 计算当月最后一天,返回字符串     
    public String getDefaultDay(){       
       String str = "";     
       SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");         
     
       Calendar lastDate = Calendar.getInstance();     
       lastDate.set(Calendar.DATE,1);//设为当前月的1号     
       lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号     
       lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天     
            
       str=sdf.format(lastDate.getTime());     
       return str;       
    }     
         
    // 上月第一天     
    public String getPreviousMonthFirst(){       
       String str = "";     
       SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");         
     
       Calendar lastDate = Calendar.getInstance();     
       lastDate.set(Calendar.DATE,1);//设为当前月的1号     
       lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号     
        str=sdf.format(lastDate.getTime());     
       return str;       
    }     
         
    //获取当月第一天     
    public String getFirstDayOfMonth(){       
       String str = "";     
       SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");         
     
       Calendar lastDate = Calendar.getInstance();     
       lastDate.set(Calendar.DATE,1);//设为当前月的1号     
       str=sdf.format(lastDate.getTime());     
       return str;       
    }     
顶部