1. 程式人生 > >Java公用方法

Java公用方法

ret ava cnblogs its 昨天 min array lis span

1、public String getValueByName(String params,String name)
--獲取規字符串中的指定名稱的某個字段值

2、function getSelectedMasterKeys()
--用於通過表單選中的復選框獲取它的值

3、public String getCurMonth()
--獲取當前年

4、public String getListColumnSum(List<HashMap> list,String coulumName,int point)
--匯總指定列的 總和

5、public String getDoublePoint(Double d,int point)
--保留小數不進行四舍五入

6、public String getNextMonth(String datestr)
--獲取下一月(還沒到來)

7、public List<String> getStartMonthToCurMonth()
--獲取本年1月到當前月份

8、public String getNextDay(String datestr)
--退一天(獲取昨天)

9、public String ListMapToStrs(List<HashMap> list,String name)
--將集合中HashMap的指定列收集成字符串返回 多個用逗號分開

10、public String ListStringToStrs(List<String> list)
--將list轉成字符串

11、private String getWeekFirstDay()
--獲得當前周- 周一的日期

12、private String getWeekLastDay()
--獲得當前周- 周日的日期

13、public HashMap getWeekFirstToLastDay()
--獲取本周 周一到周日 的日期

14、public String unitWConversion(String str,int point,boolean showunit)
--萬元單位換算

15、public String getBaifenbi(String d1,String d2)
--獲取占比

16、public String getEndDayByMonth(String datatimestr)
--獲取指定日期所屬月份的 最後一天

17、public static int compareDate(String DATE1, String DATE2)
--比較兩個日期大小 DATE1>DATE2 1,DATE1<DATE2 2,DATE1=DATE2 3

18、public HashMap getTongbiData(String sd1,String sd2)
--計算同比方法

/**
 * 用於通過表單選中的復選框獲取它的值
 */
function getSelectedMasterKeys(){
    var r_arr=new Array();
    var elements=document.getElementsByTagName("INPUT");
    var val="";
    for(i=0;i<elements.length;i++){
       var name=elements[i].name;
       if(elements[i].type=="checkbox"){
           if(name.indexOf("master_key")!=-1){
               if(elements[i].checked==true){
                   r_arr[r_arr.length]=elements[i].value;
               }
           }
       }
    }
    return r_arr;
}
    /**
     * 獲取當前年
     * @return 字符串
     */
    public String getCurMonth(){
        Calendar now = Calendar.getInstance();
        String  datestr = new SimpleDateFormat("yyyy-MM").format(now.getTime());
        return datestr;
    }
    /**
     * 匯總指定列的 總和
     * @param list
     * @param coulumName 列名
     * @param point 保留小數位
     * @return
     */
    public String getListColumnSum(List<HashMap> list,String coulumName,int point){
        DecimalFormat df = new DecimalFormat("######0.00");
         
        String main_total_str="0";
        String main_total="0.00";
        for(HashMap map:list){
            String total=this.getMapValue(map,coulumName);
            
            df.setMaximumFractionDigits(point);
            df.setMinimumFractionDigits(0);
            df.setRoundingMode(RoundingMode.FLOOR);
            String total2=df.format(Double.parseDouble(total)/100f);
                
            BigDecimal b1 = new BigDecimal(total2); 
            BigDecimal b2 = new BigDecimal(main_total+""); 
            if(total!=null && !total.equals("")){
                main_total=df.format(b1.add(b2).doubleValue());
            }
        }
        main_total_str=this.getDoublePoint(df.format(Double.parseDouble(main_total)),point);
        return main_total_str;
    }
    /**
     * 保留小數不進行四舍五入
     * @param d
     * @return
     */
    public String getDoublePoint(Double d,int point){
        String r_dstr=d+"";
        String[] d_arr=(d+"").split("\\.");
        if(d_arr.length==2){
            String point_str=d_arr[1];
            if(!point_str.equals("") && point_str.length()>9){point_str=point_str.substring(0,9);}
            if(Integer.parseInt(point_str)==0){
                r_dstr=d_arr[0];
            }else{
                if(point>d_arr[1].length()){point=d_arr[1].length();}
                r_dstr=d_arr[0]+"."+d_arr[1].substring(0, point);
            }
        }
        return r_dstr;
    }
     /**
     * 下一月(還沒到來)
     * @param datestr
     * @return
    */
    public String getNextMonth(String datestr){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        String  newDatestr="";
        try {
            Date d = sdf.parse(datestr);
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(d);
            calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH)+1);
            newDatestr = sdf.format(calendar.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return newDatestr;
    }
    /**
     * 獲取本年1月到當前月份
     * @return
     */
    public List<String> getStartMonthToCurMonth(){
        Calendar now = Calendar.getInstance();
        String  cmonth = new SimpleDateFormat("MM").format(now.getTime());
        List<String> list=new ArrayList<String>();
        int cmonth_int=Integer.parseInt(cmonth);
        for(int i=1;i<=cmonth_int;i++){
            list.add(i+"");
        }
        return list;
    }

    /**
     * 退一天
     * @param datestr
     * @return
    */
    public String getNextDay(String datestr){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        String  newDatestr="";
        try {
            Date d = sdf.parse(datestr);
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(d);
            calendar.add(calendar.DATE,-1);
            
            newDatestr = sdf.format(calendar.getTime());
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return newDatestr;
    }
    /**
     * 將集合中HashMap的指定列收集成字符串返回 多個用逗號分開s
     * @param list
     * @param name
     * @return
    */
    public String ListMapToStrs(List<HashMap> list,String name){
        String strs="";
        for(HashMap map:list){
            String value=this.getMapValue(map,name);
            if(!value.equals("")){
                strs=strs+value+",";
            }
        }
        if(strs.endsWith(",")){
            strs=strs.substring(0,strs.length()-1);
        }
        return strs;
    }
    /**
     * 將list轉成字符串
     * @param list
     * @return
    */
    public String ListStringToStrs(List<String> list){
        String strs="";
        for(String str:list){
            if(!str.equals("")){
                strs=strs+str+",";
            }
        }
        if(strs.endsWith(",")){
            strs=strs.substring(0,strs.length()-1);
        }
        return strs;
    }
    /**
     * 獲得當前周- 周一的日期
     * @return
    */
    private String getWeekFirstDay() {
        int mondayPlus = getMondayPlus();
        GregorianCalendar currentDate = new GregorianCalendar();
        currentDate.add(GregorianCalendar.DATE, mondayPlus);
        Date monday = currentDate.getTime();

        String default_format="yyyy-MM-dd";
        SimpleDateFormat df=new SimpleDateFormat(default_format);

        String preMonday = df.format(monday);
        return preMonday;
    }
/**
     * 獲得當前周- 周日  的日期
     * @return
    */
    private String getWeekLastDay() {
         int mondayPlus = getMondayPlus();
         GregorianCalendar currentDate = new GregorianCalendar();
         currentDate.add(GregorianCalendar.DATE, mondayPlus +6);
         Date monday = currentDate.getTime();
         
         String default_format="yyyy-MM-dd";
          SimpleDateFormat df=new SimpleDateFormat(default_format);
         
         String preMonday = df.format(monday);
         return preMonday;
 
    }
    /**
     * 獲取本周 周一到周日 日期
     * @return
    */
    public HashMap getWeekFirstToLastDay(){
        HashMap weekday=new HashMap();
        weekday.put("starttime",this.getWeekFirstDay());
        weekday.put("endtime",this.getWeekLastDay());
        return weekday;
    }
    /**
     * 萬元單位換算
     * @param str 需要轉換的值
     * @param point 保留單位數
     * @param unitstr 單位萬元
     * @return
    */
    public String unitWConversion(String str,int point,boolean showunit){
        DecimalFormat df = new DecimalFormat("######0.00");
        df.setMaximumFractionDigits(point);
        df.setRoundingMode(RoundingMode.FLOOR);
        String total=str;
        String unitstr="";
        if(Double.parseDouble(str)>9999){
            total=df.format(Double.parseDouble(str)/10000f);
            if(showunit==true){unitstr="萬元";}
        }else{
            total=total;
            if(showunit==true){unitstr="元";}
        }
        return total+unitstr;
    }
    /**
     * 獲取占比
     * @param d1
     * @param d2
     * @return
    */
    public String getBaifenbi(String d1,String d2){
        String value="0";
        if(d1.matches("^[-\\+]?[.\\d]*$") && d2.matches("^[-\\+]?[.\\d]*$")){
            Double tb=(Double.parseDouble(d1)/Double.parseDouble(d2))*100;
            value=this.getDoublePoint(tb,2);    
        }
        if(!value.matches("^[-\\+]?[.\\d]*$")){
            value="0";
        }
        return value;
    }
    /**
     * 獲取指定日期所屬月份的 最後一天
     * @param datatimestr
     * @return
     */
    public String getEndDayByMonth(String datatimestr){
        String endtime="";
        try{
             SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
             Date d = sdf.parse(datatimestr);
             Calendar calendar = Calendar.getInstance();  
             calendar.setTime(d);
             calendar.set(Calendar.DATE, 1);  
             calendar.roll(Calendar.DATE, -1);  
             int maxDate = calendar.get(Calendar.DATE);  
             endtime=datatimestr.substring(0,datatimestr.lastIndexOf("-"))+"-"+this.zeroFill(maxDate+"",2);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return endtime;
    }
    /**
     * 比較兩個日期大小 DATE1>DATE2 1,DATE1<DATE2 2,DATE1=DATE2 3
     * @param DATE1
     * @param DATE2
     * @return
     */
    public static int compareDate(String DATE1, String DATE2) {        
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        try {
            Date dt1 = df.parse(DATE1);
            Date dt2 = df.parse(DATE2);
            if (dt1.getTime() > dt2.getTime()) {
                return 1;
            } else if (dt1.getTime() < dt2.getTime()) {
                return 2;
            } else if (dt1.getTime() == dt2.getTime()) {
                return 3;
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return 0;
    }
    /**
     * 計算同比方法
     * @param d1 上年數據
     * @param d2 本年數據
     * @return
     */
    public HashMap getTongbiData(String sd1,String sd2){
        //System.out.println("sd1::" + sd1 + " sd2:"+sd2);
        Double d1=Double.parseDouble(sd1);
        Double d2=Double.parseDouble(sd2);
        
        String orderby="";
        String value="";
        Double tb=0.00;
        if(d1>0){//上一年有數據
            if(d2>0){
                if(d2>d1){
                    orderby="asc";//代表上升
                    tb=(Double.parseDouble((d2-d1)+"")/Double.parseDouble(d1+""))*100;
                }else{//代表下升
                    if(!d2.equals(d1)){
                        orderby="desc";
                    }
                    tb=(Double.parseDouble((d1-d2)+"")/Double.parseDouble(d1+""))*100;
                }
            }else{
                if(d2>0){
                    orderby="desc";//代表下降
                }else{
                    orderby="";
                }
            }
        }else{//上一年沒有數據
            if(d2>0){
                orderby="asc";
                tb=100.0;
            }else{
                tb=0.0;
            }
        }
        value=this.getDoublePoint(tb,2)+"%";
        HashMap map=new HashMap();        
        map.put("value",value);
        map.put("orderby",orderby);
        return map;
    }

/** 
 *    username:nvalue,id:idval
 * 獲取規字符串中的指定名稱的某個字段值 
 * @param filters
 * @param name
 * @return
*/
public String getValueByName(String params,String name){
    String value="";
    String[] one_arr=params.split(",");
    for(int i=0;i<one_arr.length;i++){
        if(!one_arr[i].equals("")){
            String[] two_arr=one_arr[i].split(":");                
            if(two_arr[0].equals(name)){
                if(two_arr.length>1){
                    value=two_arr[1];
                }
            }
        }
    }
    return value;
}

Java公用方法