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

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

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

    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
三、前端高德地图、测量两个点之前的距离
|
3月前
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
一个球从 1000 米高空掉落,每次弹起高度是上一次的 50% ,弹几次后,高度低于 1 米
一个球从 1000 米高空掉落,每次弹起高度是上一次的 50% ,弹几次后,高度低于 1 米
67 0
封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
封装一个函数,小球原始高度不固定,弹起比例不固定、计算谈几次后,高度低于1米
54 0
|
6月前
|
Linux
计算当前时间距离1970年的秒数
计算当前时间距离1970年的秒数
珠峰高 8848 米,一张纸 0.01 米,这张纸对折多少次后高度超过珠峰
珠峰高 8848 米,一张纸 0.01 米,这张纸对折多少次后高度超过珠峰
107 0
|
定位技术 开发者
百度地图基本使用及画线路轨迹播放问题
百度地图基本使用及画线路轨迹播放问题
|
传感器 缓存 算法
基于uFUN开发板的心率计(二)动态阈值算法获取心率值
基于uFUN开发板的心率计(二)动态阈值算法获取心率值
168 0
基于uFUN开发板的心率计(二)动态阈值算法获取心率值
|
定位技术 API Android开发
安卓基于百度地图计算两个经纬度点的直线距离并只保留两位小数
安卓基于百度地图计算两个经纬度点的直线距离并只保留两位小数
385 0
Google Earth Engine——地球静止卫星数据(GridSat-B1)提供了3个频道的数据:CDR质量的红外窗口(IRWIN)频道(接近11μm),可见光频道(接近0.6μm)和红外水汽
Google Earth Engine——地球静止卫星数据(GridSat-B1)提供了3个频道的数据:CDR质量的红外窗口(IRWIN)频道(接近11μm),可见光频道(接近0.6μm)和红外水汽
249 0
Google Earth Engine——地球静止卫星数据(GridSat-B1)提供了3个频道的数据:CDR质量的红外窗口(IRWIN)频道(接近11μm),可见光频道(接近0.6μm)和红外水汽