计算当前时间占一个时间区间内的比例:
package com.coffee.time;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author: coffee
* @date: 2021/10/26 16:20
* @Description: java时间比例计算
*/
public class TimePercent {
public TimePercent() {
}
/**
* 计算当前时间占一个时间区间内的比例
* @param nowTime
* @param startTime
* @param endTime
* @return
*/
private static long getTimePercent(java.util.Date nowTime, java.util.Date startTime, java.util.Date endTime) {
long percent;
if (nowTime.getTime() <= startTime.getTime()) {
percent = 0;
} else if (nowTime.getTime() >= endTime.getTime()) {
percent = 100;
} else {
//结束时间和开始时间中间的天数
Double a = (endTime.getTime() - startTime.getTime()) / (double) (1000 * 3600 * 24);
//当前时间和开始时间中间的天数
Double b = (nowTime.getTime() - startTime.getTime()) / (double) (1000 * 3600 * 24);
//计算百分比存入
percent = Math.round(b / a * 100);
}
return percent;
}
public static void main(String[] args) throws Exception{
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm");
System.out.println("今天的时间已经过去了"+getTimePercent(new Date(),sf.parse("2021-10-26 00:00"),sf.parse("2021-10-26 23:59"))+"%");
}
}
计算当前时间占当天时间范围的比例: