1. 程式人生 > >java編寫的測試用時函式

java編寫的測試用時函式

java編寫的測試用時函式

呼叫方法

long start_time=getCurrentNow();
 //
 wordCountMapReduce.main(new String[]{});
//
 long end_time=getCurrentNow();
String msg=getRunTime(end_time-start_time);
 System.out.println("用時:"+msg);

用時函式

    //----------------------------------
    public static long getCurrentNow()
    {
         return System.currentTimeMillis();
    }
    public static String getRunTime(long runTime_ms)
    {
        long day_xs = 60 * 60 * 24;
        long hour_xs = 60 * 60;
        long min_xs = 60;
        //
        long seconds = runTime_ms/1000;
        //相差總秒數
        long subs = seconds;
        //相差天數
        long iDays = subs / day_xs;
        //
        //相差小時數
        long day_ms = iDays * day_xs;
        long sy_ms = subs - day_ms;
        long iHours = sy_ms / hour_xs;
        //相差分鐘數
        long hour_ms = iHours * hour_xs;
        long sy_min_ms = sy_ms - hour_ms;
        long iMin = sy_min_ms / min_xs;
        //相差秒數
        long Min_ms = iMin * min_xs;
        long sy_second_ms = sy_min_ms - Min_ms;
        long iSeconds = sy_second_ms;
        //
        String msg = "";
        if (iDays <= 0) {
            if (iHours <= 0) {
                if (iMin <= 0) {
                    msg = iSeconds + "秒";
                }
                else {
                    msg = iMin + "分鐘" + iSeconds + "秒";
                }
            }
            else {
                msg = iHours + "小時" + iMin + "分鐘";
            }
        }
        else {
                msg = iDays + "天" + iHours + "小時" + iMin + "分鐘";
        }
        //
        return msg;
    }
    //----------------------------------
    //其它函式
    public static String getUTF_8(String str)
            throws UnsupportedEncodingException
    {
       return new String(str.getBytes("ISO-8859-1"), "UTF-8");
    }
    public static InetAddress getLocalHostLANAddress()  {
        try {
            InetAddress candidateAddress = null;
            // 遍歷所有的網路介面
            for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces.hasMoreElements(); ) {
                NetworkInterface iface = (NetworkInterface) ifaces.nextElement();
                // 在所有的介面下再遍歷IP
                for (Enumeration inetAddrs = iface.getInetAddresses(); inetAddrs.hasMoreElements(); ) {
                    InetAddress inetAddr = (InetAddress) inetAddrs.nextElement();
                    if (!inetAddr.isLoopbackAddress()) {// 排除loopback型別地址
                        if (inetAddr.isSiteLocalAddress()) {
                            // 如果是site-local地址,就是它了
                            return inetAddr;
                        } else if (candidateAddress == null) {
                            // site-local型別的地址未被發現,先記錄候選地址
                            candidateAddress = inetAddr;
                        }
                    }
                }
            }
            if (candidateAddress != null) {
                return candidateAddress;
            }
            // 如果沒有發現 non-loopback地址.只能用最次選的方案
            InetAddress jdkSuppliedAddress = InetAddress.getLocalHost();
            return jdkSuppliedAddress;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }