一、简介

有个需求是,累加通话时长,把上次通话时长加上本次通话时长,依次累加。

二、实现

@Test

public void TestA() throws ParseException {

SimpleDateFormat myFormatter = new SimpleDateFormat("HH:mm:ss");

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//上一次通话时长

HealthConsultation healthConsultation = new HealthConsultation();

healthConsultation.setConsultinghours("00:00:08");

//呼叫时长 3

HealthCallStateRecord healthCallStateRecorda = new HealthCallStateRecord();

healthCallStateRecorda.setCreatedate(format.parse("2017-12-19 17:43:42"));

//本次通话时长 4

HealthCallStateRecord healthCallStateRecordb = new HealthCallStateRecord();

healthCallStateRecordb.setCreatedate(format.parse("2017-12-19 18:51:50"));

//4-3的时间 获得两个时间的毫秒时间差异

long diff = healthCallStateRecordb.getCreatedate().getTime() - healthCallStateRecorda.getCreatedate().getTime();//这样得到的差值是微秒级别

long nd = 1000 * 24 * 60 * 60;

long nh = 1000 * 60 * 60;

long nm = 1000 * 60;

long ns = 1000;

// 计算差多少天

long day = diff / nd;

// 计算差多少小时

long hour = diff % nd / nh;

// 计算差多少分钟

long min = diff % nd % nh / nm;

// 计算差多少秒//输出结果

long sec = diff % nd % nh % nm / ns;

//判断上次是否有通话,如果有通话时长,就都累加

if(healthConsultation.getConsultinghours() != null){

Calendar cal = Calendar.getInstance();

cal.setTime(myFormatter.parse(healthConsultation.getConsultinghours()));

int shi = (int)cal.get(Calendar.HOUR_OF_DAY)+(int)hour;

int fendo = (int)cal.get(Calendar.MINUTE)+(int)min;

int miao = (int)cal.get(Calendar.SECOND)+(int)sec;

//秒大于60设为00,然后判断分是否大于60分钟,如果是则分钟清0,小时加1,否则,分钟加1。

if(miao>60){

miao=00;

if(fendo>60){

fendo = 00;

shi = shi+1;

}else {

fendo = fendo + 1;

}

}

Date dates = myFormatter.parse(shi + ":" + fendo + ":" + miao);

System.out.println("不为空当前时间 : " + myFormatter.format(dates));

}else {

//如果上次无通话,就把本次时长,设为通话时长。

Date dates = myFormatter.parse(hour + ":" + min + ":" + sec);

System.out.println("为空当前时间 : " + myFormatter.format(dates));

}

}输出结果为:

不为空当前时间 : 01:08:16通话时长为1个多小时。

时分秒 java_JAVA 时分秒累加相关推荐

  1. C语言时间库操作-->协调时转本地时

    代码思路都是抄这篇文章的代码[C语言]UTC时间转换为北京时间, 在了解思路之前,首先我们得知道什么是时区简单的理解就是时间的分区,本初子午线为标准时(即+0),比如:中国时区为+8则 时区为东八区, ...

  2. 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )

    文章目录 一.编译时注解和注解处理器 二.创建 编译时注解 和 注解处理器 三.添加 编译时注解 和 注解处理器 依赖库依赖 四.博客资源 一.编译时注解和注解处理器 上一篇博客 [Android A ...

  3. [Android1.6]继承BaseAdapter为GridView设置数据时设置setLayoutParams时注意

    一.问题代码     public View getView(int position, View convertView, ViewGroup parent) {         if (conve ...

  4. php核销次数,人人商城记次时商品核销时展示剩余积分 - YangJunwei

    人人商城记次时商品有很多二开方案,有一客户就要求在核销时,扣除相应的积分.今天我们在记次时商品核销时展示剩余积分. 我们打开如下文件 ewei_shopv2/core/mobile/verify/ve ...

  5. nameof() 到底是编译时还是运行时行为?

    咨询区 Gigi: 在 C#6.0 中,可以用 nameof() 直接获取变量或者类型的名字,请问这是一个 编译时 还是 运行时 行为? 回答区 Faris Zacina: 可以肯定的说,它是一种 编 ...

  6. 进程共享(读时共享写时复制)

    父子进程之间在刚fork后.父子相同处: 全局变量..data..bbs..text.栈.堆.环境变量.用户ID.宿主目录(进程用户家目录).进程工作目录.信号处理方式等等,即0~3G的用户空间是完全 ...

  7. c++输入错误重新输入_C程序-根据时长和时薪计算工资1.3(解决输入非数字选项退出的bug)...

    程序内容: 提供五种工资菜单,用户自行选择,读取用户输入的工作时长,计算工资和净收入,及其缴纳的税金.(C Primer Plus 第7章 第8题) 程序更新:解决输入非数字选项后退出程序的bug. ...

  8. 欧洲杯推动夜间消费发展 便利蜂晚20时-凌晨2时服务人次创新高

    6月21日消息,随着欧洲杯的开幕,中国消费者,尤其是球迷们,同样进入了"夏季狂欢季",并推动了部分城市的"夜经济"发展. 据便利蜂发布的数据显示,晚间20时-凌 ...

  9. 单片机数字钟(调时,调时闪烁,万年历,年月日)超详细解析

    2019/07/13 单片机数字钟(调时,调时闪烁,万年历,年月日)超详细解析 发表日期:2019/07/13 单片机开发板:巫妖王2.0, 使用同款开发板可直接上板测试 文档说明: 实现功能 : 一 ...

最新文章

  1. pangolin最新版 v2.5.2.975
  2. 信息系统项目管理师全国通用吗
  3. 设计 Redis Key
  4. linux 64 32 编译支持,在64位linux上编译32位程序 for i386 intel
  5. Compound总法律顾问:PWG的稳定币声明不是积极提议,他们的任期没几天了
  6. Hessian HTTP POST访问时,Nginx返回411问题
  7. Ubuntu添加swap分区
  8. [转载] 【python】Python中*args和**kwargs的区别(在Python中如何使用可变长参数列表)
  9. 对uni.request()二次封装,封装$myRequest方法并挂载到全局
  10. 关于空间复杂度,你可能有几个疑问?
  11. interview-db
  12. python基础函数应用_python基础之函数的应用
  13. WPF学习记录1:ListView的一个模板
  14. 【Java面试】Java面试简历—轻松月薪过w(附赠最全简历模板)
  15. 华为路由器显示连接到服务器失败怎么办,华为路由器设置好了不能用怎么办 华为路由器无法上网问题-192路由网...
  16. SQL项目-IOS 应用商店分析
  17. mysql查询各专业人数_查询各专业的学生数。
  18. JS简单入门学习笔记一
  19. vue文件下载进度条
  20. 简单的LED交替闪烁程序

热门文章

  1. Netbackup 7.6新增功能和优势
  2. openssl漏洞检查
  3. hibernate 程序运行时的错误,及解决办法(不定期更新)
  4. 大道五目Flash英文版(Renju Problems)程序分析之禁手判断
  5. Android中scrollview与webview冲突事件
  6. hbase多master和动态添加节点
  7. 12.JAVA基本数据类型
  8. c语言链表不带头节点的排序,不带头结点的单向链表排序——插入排序(C语言)...
  9. python发送excel文件_Python操作Excel, 开发和调用接口,发送邮件
  10. python ide如何运行_ide - 如何运行Python程序?