如上,谁有类似的代码,请教下

解决方案 »

  1.   

    如果是ORACLE就好办了,直接减天数,你算好天数就行
    select sysdate,add_months(sysdate,-12) from dual;         --减1年
                select sysdate,add_months(sysdate,-1) from dual;         --减1月
                select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; 
                   --减1星期
                select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; 
                   --减1天
                select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from 
                dual;   --减1小时
                select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from 
                dual;   --减1分钟
                select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') 
                from dual; --减1秒
      

  2.   


    Date date = new Date(System.currentTimeMillis()) ;
    int month = date.getMonth() ;
    if(0<=month&& month<=2){
                 System.out.println("09月30日"); 
    }
    if(3<=month&& month<=5){
      System.out.println("12月31日"); 
    }
    if(6<=month&& month<=8){
      System.out.println("03月31日"); 
    }if(9<=month&& month<=11){
      System.out.println("06月30日"); 
    }
      

  3.   

    写出来了一个,要的是这样的效果                 String str = "";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar lastDate = Calendar.getInstance();
    int month = (lastDate.get(Calendar.MONTH)) + 1;
     if(month==1||month==4||month==7||month==10) {
    lastDate.add(Calendar.MONTH, -4);//日期减4个月
    lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
    lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
    str = sdf.format(lastDate.getTime());
    System.out.println(str);
    }else if(month==2||month==5||month==8||month==11) {
    lastDate.add(Calendar.MONTH, -5);// 日期减5个月
    lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
    lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
    str = sdf.format(lastDate.getTime());
    System.out.println(str);
    }else {
    lastDate.add(Calendar.MONTH, -6);//日期减6个月
    lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
    lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
    str = sdf.format(lastDate.getTime());
    System.out.println(str);
    }
      

  4.   

    同意huage1998
    思路要开阔一些,事情没那么复杂另外,huage1998好像没有考虑年的部分
      

  5.   

    上上个季度最后一天日期,月和日就是固定的4种值,因此 /**
     * 取得上上季度最后一天日期
     * @param date 日期
     * @return
     */
    public String getLastDay(Date date){
    //取得日历
    Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            
            // 日历减6个月,即上上季度
            calendar.add(Calendar.MONTH,-6);
            
            int year = calendar.get(Calendar.YEAR);// 上上季度的年份
            int mouth = calendar.get(Calendar.MONTH);// 上上季度的月份
            String mmdd = "";// 月/日
            // 根据月份,判断是哪个季度
            switch( mouth){
             case 1:
             case 2:
             case 3:
             mmdd = "3/31"; // 第一季度最后一天是3/31
             break;
             case 4:
             case 5:
             case 6:
             mmdd = "6/30"; // 第二季度最后一天是6/30
             break;
             case 7:
             case 8:
             case 9:
             mmdd = "9/30";// 第三季度最后一天是9/30
             break;
             case 10:
             case 11:
             case 12:
             mmdd = "12/31";// 第四季度最后一天是12/31
             break;
            }
            
            String lastDate = String.valueOf(year) + "/" + mmdd;
            System.out.println(lastDate);
            return lastDate;
    }
      

  6.   

      代码有bug, 在java中,月份是从0开始的, 所以
    int mouth = calendar.get(Calendar.MONTH) + 1;// 上上季度的月份