if(x<12)
  ...
else
  ...
其中,x代表提取出来的月份。

解决方案 »

  1.   

    你的意思是不是 
    2004-11-26 至 2004-12-25
    2004-12-26 至 2005-01-25
    2005-01-26 至 2005-02-25
    这样的重复?没明白你想干什么
    是不是说你需要每个月的第一天是26号这样的
    用Calendar可以做很多日期相关的事情
    Calendar rightNow = Calendar.getInstance();
      

  2.   

    java.util.Date start=new java.util.Date();
    start.setTime(start.getTime()-start.getHours()*60*60*1000-start.getMinutes()*60*1000-start.getSeconds()*1000-start.getTime()%1000);
    start.setDate(26);
    java.util.Date end=new java.util.Date();
    end.setTime(end.getTime()-end.getHours()*60*60*1000-end.getMinutes()*60*1000-end.getSeconds()*1000-end.getTime()%1000-1);
    end.setDate(25);java.util.Date curTime=new java.util.Date();
    if(curTime.before(start))
    {
    if(start.getMonth()==0)
    {
    start.setMonth(11);
    start.setYear(start.getYear()-1);
    }
    else
    {
    start.setMonth(start.getMonth()-1);
    }
    }
    else
    {
    if(end.getMonth()==11)
    {
    end.setMonth(0);
    end.setYear(end.getYear()+1);
    }
    else
    {
    end.setMonth(end.getMonth()+1);
    }
    }System.out.println(start);
    System.out.println(end);
      

  3.   

    没写中文注释,大致补充一下//将起始时间设为本月的26日第一时间
    java.util.Date start=new java.util.Date();
    start.setTime(start.getTime()-start.getHours()*60*60*1000-start.getMinutes()*60*1000-start.getSeconds()*1000-start.getTime()%1000);
    start.setDate(26);
    //将结束时间设为本月25日最后时间
    java.util.Date end=new java.util.Date();
    end.setTime(end.getTime()-end.getHours()*60*60*1000-end.getMinutes()*60*1000-end.getSeconds()*1000-end.getTime()%1000-1);
    end.setDate(25);//比较当前时间和起始时间,
    java.util.Date curTime=new java.util.Date();
    if(curTime.before(start))
    {
    //如果当前时间比起始时间早,就把起始时间往前推一个月
    //以下考虑为一月份往前推至前一年的十二月
    if(start.getMonth()==0)
    {
    start.setMonth(11);
    start.setYear(start.getYear()-1);
    }
    else
    {
    start.setMonth(start.getMonth()-1);
    }
    }
    else
    {
    //如果当前时间比起始时间晚,就把结束时间往后推一个月
    //一年的十二月往后推为次年的一月
    if(end.getMonth()==11)
    {
    end.setMonth(0);
    end.setYear(end.getYear()+1);
    }
    else
    {
    end.setMonth(end.getMonth()+1);
    }
    }
    //现在就可以用了
    System.out.println(start);
    System.out.println(end);
      

  4.   

    public static void main(String[] args) {
            /* //test1
            TransformerPool tp=TransformerPool.getInstance();
            System.out.println(tp.getCapacity());
            */
            Date now=new Date();
            System.out.println(getStartDateStr(now));
            System.out.println(getEndDateStr(now));
    }
    public static String getStartDateStr(Date d){
        int date=d.getDate();
        Date tmp;
        long l=24*60*60*1000; //一天的毫秒数
        if(date<=25){
            tmp=new Date(d.getTime()-27*l);
            //保证能取到上个月,因为一个月最少天数是28,这里取27
            tmp.setDate(26);
        }else{
            tmp=new Date(d.getTime());
            tmp.setDate(26);
        }
        return getDateStr(tmp);
    }
        public static String getEndDateStr(Date d){
            int date=d.getDate();
            Date tmp;
            long l=24*60*60*1000; //一天的毫秒数
            if(date<=25){
                tmp=new Date(d.getTime());
                tmp.setDate(25);
            }else{
                tmp=new Date(d.getTime()+10*l);
                //保证取到下个月,所以要取大于(31-26)而小于28的一个数,这里取的10天
                tmp.setDate(25);
            }
            return getDateStr(tmp);
        }
        private static String getDateStr(Date d){
           SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(d);
        }