public static String formatDuration(long lMs)
        {
                // Validate
                if (lMs > 0L)
                {
                        // -- Declare variables
                        String strDays = "";
                        String strHours = "";
                        String strMinutes = "";
                        String strSeconds = "";
                        String strMillisecs = "";
                        String strReturn = "";
                        long lRest;

                        // -- Find values
                        // -- -- Days
                        strDays = String.valueOf(lMs / 86400000L);
                        lRest = lMs % 86400000L;
                        // -- -- Hours
                        strHours = String.valueOf(lRest / 3600000L);
                        lRest %= 3600000L;
                        // -- -- Minutes
                        strMinutes = String.valueOf(lRest / 60000L);
                        lRest %= 60000L;
                        // -- -- Seconds
                        strSeconds = String.valueOf(lRest / 1000L);
                        lRest %= 1000L;
                        // -- -- Milliseconds
                        strMillisecs = String.valueOf(lRest);

                        // -- Format return
                        // -- -- Days
                        if (new Integer(strDays).intValue() != 0)
                        {
                                strReturn += strDays + "day ";
                        }
                        // -- -- Hours
                        if (new Integer(strHours).intValue() != 0)
                        {
                                strReturn += strHours + "hr ";
                        }
                        // -- -- Minutes
                        if (new Integer(strMinutes).intValue() != 0)
                        {
                                strReturn += strMinutes + "min ";
                        }
                        // -- -- Seconds
                        if (new Integer(strSeconds).intValue() != 0)
                        {
                                strReturn += strSeconds + "sec ";
                        }
                        // -- -- Milliseconds
                        if (new Integer(strMillisecs).intValue() != 0)
                        {
                                strReturn += strMillisecs + "ms";
                        }

                        return strReturn;
                }
                else if (lMs == 0L)
                {

                        return "0ms";
                }
                else
                {
                        return "-1";
                }
        }