最近在做一个人资项目,需要结算当前时间的上个月工资。起初想的是用
Date   now   =   new   Date();      
 SimpleDateFormat   dateFormat   =   new   SimpleDateFormat("yyyy-MM-dd"),获得当前时间再转换成数字再计算,但感觉不精确,转换也比较麻烦,求教高手有没有简单的方法

解决方案 »

  1.   

    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, -1);
    return c.getTime();
      

  2.   


    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, -1);
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd")
    String preMonth = dateFormat.format(c.getTime());然后扔到你的sql语句去吧
      

  3.   

    /**
     * 取参数月的前一个月
     * month: yyyy-MM或yyyyMM
     */
    public static String getPreMonth(String _month) {
    String preMonth = "";
    if (_month.length() == 6) {
    _month = _month.substring(0, 4) + "-" + _month.substring(4);
    }
    if (_month.length() >= 7) {
    if (_month.substring(5, 7).equals("01")) { //1月
    preMonth = (Integer.parseInt(_month.substring(0, 4))-1) + "-12";
    } else {
    int im = Integer.parseInt(_month.substring(5, 7))-1;
    if (im < 10) {
    preMonth = _month.substring(0, 4) + "-0" + im;
    } else {
    preMonth = _month.substring(0, 4) + "-" + im;
    }
    }
    }

    return preMonth;
    }
      

  4.   

    select * from sales where MONTH(ord_date) = DATENAME ( month , getdate() )-1 and year(ord_date)=DATENAME ( year , getdate() )
    有点啰嗦,就这意思。
      

  5.   

    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, -1);
    return c.getTime();
      

  6.   

    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, -1);
    return c.getTime();
      

  7.   

    Calendar c = Calendar.getInstance();
    c.add(Calendar.MONTH, -1);
    return c.getTime();
      

  8.   

        /**
         * 
         * 方法描述:取得当前日期的上月或下月日期 ,amount=-1为上月日期,amount=1为下月日期;创建人:jya 
         * @param s_DateStr
         * @param s_FormatStr
         * @return
         * @throws Exception
         */
        public static String getFrontBackStrDate(String strDate, String format, int amount) throws Exception {
            if (null == strDate) {
                return null;
            }
            try {            DateFormat fmt = new SimpleDateFormat(format);
                Calendar c = Calendar.getInstance();
                c.setTime(fmt.parse(strDate));
                c.add(Calendar.MONTH, amount);
                return fmt.format(c.getTime());
            } catch (Exception e) {
                e.printStackTrace();
            }
            return "";
        }