日期:2014-05-20  浏览次数:20824 次

如何获取上上个季度最后一天日期?
如上,谁有类似的代码,请教下

------解决方案--------------------
如果是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秒
------解决方案--------------------
Java code

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日"); 
        }

------解决方案--------------------
同意huage1998
思路要开阔一些,事情没那么复杂

另外,huage1998好像没有考虑年的部分
------解决方案--------------------
上上个季度最后一天日期,月和日就是固定的4种值,因此
Java code

    /**
     * 取得上上季度最后一天日期
     * @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;
    }