java根据截止日期计算倒计时

需求:

需要根据一个目标时间计算当前时间截止到目标时间的倒计时时间。

常见场景:

电商项目订单模块中,需展示订单支付的倒计时时间、订单确认收货的倒计时时间等等等等…

实现方式:

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;
    }


}

如果该文章有帮助到您,就留言点个赞吧!您的支持与肯定是我持续更新最大的动力。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值