時間的轉換和比較大小

/**
     * 比較兩個時間的時分秒大小
     * @param startDay 開始時間
     * @param endDay 結束時間
     * @return 0表示時分秒相等 , 1表示開始時間的時分秒大於結束時間 , -1表示開始時間的時分秒小於結束時間 , 否則返回0
     * 
     */
    public static int compareHourMinuSecond(String startDay, String endDay)
    {
        
            long startSecond = countHourMinuSecondTotal(startDay);

            long endSecond = countHourMinuSecondTotal(endDay);

            if (startSecond > endSecond)
            {
                return 1;
            }
            else if (startSecond == endSecond)
            {
                return 0;
            }
            else if (startSecond < endSecond)
            {
                return -1;
            }
            return 0;
    }
        
    /**
     * 計算時分秒的總秒數
     * @param hour 小時
     * @param minute 分鐘
     * @param second 秒
     * @return
     * 
     */
    public static long countTimeSecond(int hour, int minute, int second)
    {

        return hour * 3600 + minute * 60 + second;
    }
    
    /**
     * 獲取時間中的時分秒的總秒數
     * @param time
     *          時間
     * @return
     * 
     */
    public static long countHourMinuSecondTotal(String time)
    {

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        try
        {
            Date d = sdf.parse(time);

            Calendar c = Calendar.getInstance();

            c.setTime(d);

            return countTimeSecond(c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE), c.get(Calendar.SECOND));
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }

        return 0;

    }
    
    
    /**
     * 獲取當前月的最後一天
     * @param time
     *          時間
     * @param isHourMinSecond
     *          是否顯示時分秒
     * @return
     */
    public static String getLastDayOfMonth(String time, boolean isHourMinSecond)
    {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String s = "";
        try
        {
            Date d = sdf.parse(time);
            Calendar cDay = Calendar.getInstance();
            cDay.setTime(d);
            final int lastDay = cDay.getActualMaximum(Calendar.DAY_OF_MONTH);
            Date lastDate = cDay.getTime();
            lastDate.setDate(lastDay);
            if (isHourMinSecond)
            {
                s = DateFormat.convertDateToString(lastDate, "yyyy-MM-dd hh:mm:ss");
            }
            else
            {
                s = DateFormat.convertDateToString(lastDate, "yyyy-MM-dd");
            }
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return s;
    }
    
    /**
     * 計算相差多少分鐘  (時分秒) 
     * @param startTime
     *          開始時間  如:8:30:00 
     * @param endTime
     *          結束時間 如:12:00:00
     * @return
     */
    public static int countMinuteSecond(String startTime , String endTime) 
    {
        SimpleDateFormat  sdf = new SimpleDateFormat ("HH:mm:ss");
        
        int minu = 0 ;
        
        try
        {
            long start = sdf.parse(startTime).getTime();
            
            long end = sdf.parse(endTime).getTime();
            
            double ss = (end-start)/1000;
            
            minu = (int)(ss/60);
            
        }
        catch (ParseException e)
        {
            e.printStackTrace();
            return minu;
        }
        return minu;
    }
/**
     * 在當前時間上添加小時,分鐘
     * @param dateformat
     *          轉換格式 yyyy-MM-dd HH:mm:ss 
     * @param time
     *          時間 
     * @param h
     *        小時
     * @param m
     *         分鐘
     * @return
     */
    public static String addTime(String dateformat , String time ,int h , int m ){
        
        SimpleDateFormat  sdf = new SimpleDateFormat (dateformat);
        
        Date date = null;
        try
        {
            date = sdf.parse(time);
            
            Calendar c = Calendar.getInstance();
            
            c.setTime(date);
            
            c.add(Calendar.HOUR_OF_DAY, h);
            
            c.add(Calendar.MINUTE, m);
            
            date = c.getTime();
        }
        catch (ParseException e)
        {
            e.printStackTrace();
        }
        return sdf.format(date);
    }


發佈了39 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章