java操作小時數轉換

小時數轉成時分秒格式

    public static String getDateByHour(double manHour) {
        //格式 對於時分秒操作按照
//        int h = min/3600;分鐘/3600就是小時
//        int m = (min%3600)/60;
//        int s = (min%3600)%60;
		//BigDecimal 類操作精準
        BigDecimal manHourBig = new BigDecimal(manHour);
        BigDecimal bigDecimal = new BigDecimal(3600);
        BigDecimal bigDecimalM = new BigDecimal(60);
        //把小時數換算得到秒-->乘法
        BigDecimal multiply = manHourBig.multiply(bigDecimal);
        //得到小時取整-->除法
        int hh = multiply.divide(bigDecimal, 0, BigDecimal.ROUND_DOWN).intValue();
        //取模
        BigDecimal[] results = multiply.divideAndRemainder(bigDecimal);
 		//得到數組中的餘數
        BigDecimal result = results[1];
        //得到分鐘數-->先取模在除算出對應分鐘
        int mm = result.divide(bigDecimalM, 0, BigDecimal.ROUND_DOWN).intValue();
        //秒-->先取模
        BigDecimal[] bigDecimals = result.divideAndRemainder(bigDecimal);
        //數組中的商就是秒
        int ss = bigDecimals[0].intValue();
        //拼接爲HH:mm:ss格式
        return hh+":"+mm+":"+ss;
    }

簡單調用

public static void main(String[] args){
	String dateByHour = getDateByHour(2.5);
	System.out.println(dateByHour);
}

輸出結果

2:30:0

兩個時間轉成小時數

    public static String getDatePoor(Date nowDate, Date endDate) {
        long nd = 1000 * 24 * 60 * 60;
        long nh = 1000 * 60 * 60;
        long nm = 1000 * 60;
        long diff = endDate.getTime() - nowDate.getTime();
        Integer min = Integer.valueOf((int) (diff / nm));
        if (min <= 0) {
            return new BigDecimal(0).toString();
        }
        BigDecimal bigDecimal = new BigDecimal(min);
        BigDecimal b = new BigDecimal(60);
        BigDecimal divide = bigDecimal.divide(b, 2, BigDecimal.ROUND_HALF_UP);
        return divide.toString();
    }

簡單調用

    public static void main(String[] args) throws ParseException {
        SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String datePoor1 = getDatePoor(
                dateFormat1.parse("2021-10-10 12:00:00" ),
                dateFormat1.parse("2021-10-10 14:30:00" ));
        System.out.println(datePoor1+"h");
        SimpleDateFormat dateFormat2 = new SimpleDateFormat("HH:mm:ss");
        String datePoor2 = getDatePoor(
                dateFormat2.parse("12:00:00" ),
                dateFormat2.parse("14:30:00" ));
        System.out.println(datePoor2+"h");
    }

輸出結果

2.50h
2.50h
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章