需求:
需要根据一个目标时间计算当前时间截止到目标时间的倒计时时间。
常见场景:
电商项目订单模块中,需展示订单支付的倒计时时间、订单确认收货的倒计时时间等等等等…
实现方式:
java后台实现
/**
* @Author chenqi
* @Description Java 实现倒计时(由秒计算天、小时、分钟、秒)
* @Date 17:39 2019/5/15
**/
public class CountDownUtils {
private static long day = 0;
private static long hour = 0;
private static long minute = 0;
private static long second = 0;
private static boolean dayNotAlready = false;
private static boolean hourNotAlready = false;
private static boolean minuteNotAlready = false;
private static boolean secondNotAlready = false;
/**
* @Author chenqi
* @Description 根据目标时间计算倒计时 天:小时:分钟:秒
* @Date 17:41 2019/5/15
* @Param [overTime(目标时间),currentDateTime(当前时间或指定时间)]
* @return void
**/
public static String getCountDown(String overTime, String currentDateTime) {
Long totalSeconds = getTimeDiffSecond(overTime,currentDateTime);
resetData();
if (totalSeconds > 0) {
secondNotAlready = true;
second = totalSeconds;
if (second >= 60) {
minuteNotAlready = true;
minute = second / 60;
second = second % 60;
if (minute >= 60) {
hourNotAlready = true;
hour = minute / 60;
minute = minute % 60;
if (hour > 24) {
dayNotAlready = true;
day = hour / 24;
hour = hour % 24;
}
}
}
}
return day + ":" + hour + ":" + minute+ ":" + second;
}
private static void resetData() {
day = 0;
hour = 0;
minute = 0;
second = 0;
dayNotAlready = false;
hourNotAlready = false;
minuteNotAlready = false;
secondNotAlready = false;
}
/**
* @Author chenqi
* @Description 获取两个时间的秒时差 date1 - date2
* @Date 17:51 2019/5/15
* @Param [date1, date2]
* @return long
**/
public static long getTimeDiffSecond(String date1, String date2) {
if (date1 == null || date1.equals(""))
return 0;
if (date2 == null || date2.equals(""))
return 0;
// 转换为标准时间
SimpleDateFormat myFormatter = new SimpleDateFormat(DATE_TIME_PATTERN);
java.util.Date date = null;
java.util.Date mydate = null;
try {
date = myFormatter.parse(date1);
mydate = myFormatter.parse(date2);
} catch (Exception e) {
e.printStackTrace();
}
long day = (date.getTime() - mydate.getTime()) / 1000;
return day;
}
}
如果该文章有帮助到您,就留言点个赞吧!您的支持与肯定是我持续更新最大的动力。