实现倒计时、计算通话结束时距离现在过了多久

简介: 实现倒计时、计算通话结束时距离现在过了多久

计算通话结束时距离现在过了多久

    String strTime = "";
        Date callDate = callRecord.getCallDate();//通话结束时时间
        long callTime = callDate.getTime();//返回通话结束时时间毫秒值
        long currentTimeMillis = System.currentTimeMillis();//当前时间毫秒值
        // 小于60分钟
        if ((currentTimeMillis - callTime) / 1000 / 60 < 60) {
          // 小于1分钟
            if (((currentTimeMillis - callTime) / 1000 / 60) == 0) {
                strTime = "刚刚";
            } else {
                strTime = ((currentTimeMillis - callTime) / 1000 / 60) + "分钟前";
            }
        } else if ((currentTimeMillis - callTime) / 1000 / 60 > 60 && ((currentTimeMillis - callTime) / 1000 / 60) < (24 * 60)) {
          // 大于60分钟且小于24小时
            strTime = ((currentTimeMillis - callTime) / 1000 / 60 / 60) + "小时前";
        } else if (((currentTimeMillis - callTime) / 1000 / 60) > (24 * 60) && ((currentTimeMillis - callTime) / 1000 / 60) < (24 * 60 * 7)) {
          // 大于24小时且小于7天
            strTime = ((currentTimeMillis - callTime) / 1000 / 60 / 60 / 24) + "天前";
        } else if (((currentTimeMillis - callTime) / 1000 / 60) >= (24 * 60 * 7)) {
          // 大于7天,显示具体时间日期
            strTime = new SimpleDateFormat("MM-dd HH:mm").format(callDate);
        }
        viewHolder.calls_list_callDate.setText(strTime);

倒计时

可显示天时分秒的倒计时

import android.os.CountDownTimer;

  /**
     * 
     * @param millisecond:毫秒值
     * @param timeText:显示倒计时的TextView控件
     */
  public static void remainingTime(int millisecond, TextView timeText) {
        CountDownTimer countDownTimer = new CountDownTimer(millisecond, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                ChatUtil.getIns().setPromotionSurplusMillisecond(millisUntilFinished);
                long day = millisUntilFinished / (1000 * 60 * 60 * 24);
                long hour = (millisUntilFinished - day * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
                long minute = (millisUntilFinished - day * (1000 * 60 * 60 * 24) - hour * (1000 * 60 * 60)) / (1000 * 60);
                long second = (millisUntilFinished - day * (1000 * 60 * 60 * 24) - hour * (1000 * 60 * 60) - minute * (1000 * 60)) / 1000;
                String hourStr = hour + "";
                String minuteStr = minute + "";
                String secondStr = second + "";
                if (hour / 10 < 1) {
                    hourStr = 0 + hourStr;
                }
                if (minute / 10 < 1) {
                    minuteStr = 0 + minuteStr;
                }
                if (second / 10 < 1) {
                    secondStr = 0 + secondStr;
                }
                if (timeText != null) {
                    timeText.setText(hourStr + ":" + minuteStr + ":" + secondStr);
                }
            }

            @Override
            public void onFinish() {
                // 倒计时为0时
                if (timeText!= null) {
                    timeText.setVisibility(View.GONE);
                }
            }
        };
        countDownTimer.start();
    }

只显示分秒的倒计时

  /**
     * @param millisecond:毫秒数
     */
  private void remainingTime(int millisecond) {
        CountDownTimer countDownTimer = new CountDownTimer(millisecond, 1000) {
            @Override
            public void onTick(long millisUntilFinished) {
                long minute = millisUntilFinished / (1000 * 60);//分
                long second = (millisUntilFinished - minute * (1000 * 60)) / 1000;//秒
                String minuteStr = minute + "";
                String secondStr = second + "";
                if (minute / 10 < 1) {
                    minuteStr = 0 + minuteStr;
                }
                if (second / 10 < 1) {
                    secondStr = 0 + secondStr;
                }
                await_receive_time.setText(minuteStr + ":" + secondStr);
            }

            @Override
            public void onFinish() {
                // 倒计时为0时进入这个方法
                effect_get_button.setEnabled(true);
                effect_red_dot.setVisibility(View.VISIBLE);
                await_receive_time_img.setVisibility(View.GONE);
                await_receive_time.setVisibility(View.GONE);
            }
        };
        countDownTimer.start();
    }
目录
相关文章
|
2月前
|
前端开发 JavaScript 定位技术
三、前端高德地图、测量两个点之前的距离
文章介绍了如何在前端使用高德地图API实现测量两个点之间的距离,包括开启和关闭测量工具的方法,以及如何清除地图上的测量点、连线和文字。
35 1
三、前端高德地图、测量两个点之前的距离
|
6月前
|
JavaScript Serverless
Vue 封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
Vue 封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
22 1
封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
53 0
一个球从 1000 米高空掉落,每次弹起高度是上一次的 50% ,弹几次后,高度低于 1 米
一个球从 1000 米高空掉落,每次弹起高度是上一次的 50% ,弹几次后,高度低于 1 米
66 0
|
传感器
如何计算摄影参数:分区基准面高程、相对航高、绝对航高、基线长度、航线间隔、航线数、每条航线的相片数、总相片数。
如何计算摄影参数:分区基准面高程、相对航高、绝对航高、基线长度、航线间隔、航线数、每条航线的相片数、总相片数。
1500 0
|
6月前
|
Linux
计算当前时间距离1970年的秒数
计算当前时间距离1970年的秒数
封装一个函数,山峰 高度不固定、纸张厚度不固定,计算折叠几次后超过山峰
封装一个函数,山峰 高度不固定、纸张厚度不固定,计算折叠几次后超过山峰
51 0
|
小程序 数据管理 定位技术
小程序中计算距离信息
小程序中计算距离信息
小程序中计算距离信息
|
JavaScript 前端开发
倒计时跳转和获取实时时间
本文内容如题,自己做的一个demo,倒计时和获取实时时间在许多场景都用的到,所以还算蛮实用的,需要的朋友可以做个参考。 代码解析:html代码 <body onload="startTime()"> <div class="box"> <div class="time">请等待<span id="dd">6</span>秒</div> <!--设置时间长一点,不然一直跳转很烦--> ![](aaa.png) <div class="id-box"> <div id="time"></div>
285 0
倒计时跳转和获取实时时间
程序人生 - 游戏帧数很高,为什么还是会卡顿?(一)
程序人生 - 游戏帧数很高,为什么还是会卡顿?(一)
282 0
程序人生 - 游戏帧数很高,为什么还是会卡顿?(一)