时分秒 java_JAVA 时分秒累加
一、简介
有个需求是,累加通话时长,把上次通话时长加上本次通话时长,依次累加。
二、实现
@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 时分秒累加相关推荐
- C语言时间库操作-->协调时转本地时
代码思路都是抄这篇文章的代码[C语言]UTC时间转换为北京时间, 在了解思路之前,首先我们得知道什么是时区简单的理解就是时间的分区,本初子午线为标准时(即+0),比如:中国时区为+8则 时区为东八区, ...
- 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
文章目录 一.编译时注解和注解处理器 二.创建 编译时注解 和 注解处理器 三.添加 编译时注解 和 注解处理器 依赖库依赖 四.博客资源 一.编译时注解和注解处理器 上一篇博客 [Android A ...
- [Android1.6]继承BaseAdapter为GridView设置数据时设置setLayoutParams时注意
一.问题代码 public View getView(int position, View convertView, ViewGroup parent) { if (conve ...
- php核销次数,人人商城记次时商品核销时展示剩余积分 - YangJunwei
人人商城记次时商品有很多二开方案,有一客户就要求在核销时,扣除相应的积分.今天我们在记次时商品核销时展示剩余积分. 我们打开如下文件 ewei_shopv2/core/mobile/verify/ve ...
- nameof() 到底是编译时还是运行时行为?
咨询区 Gigi: 在 C#6.0 中,可以用 nameof() 直接获取变量或者类型的名字,请问这是一个 编译时 还是 运行时 行为? 回答区 Faris Zacina: 可以肯定的说,它是一种 编 ...
- 进程共享(读时共享写时复制)
父子进程之间在刚fork后.父子相同处: 全局变量..data..bbs..text.栈.堆.环境变量.用户ID.宿主目录(进程用户家目录).进程工作目录.信号处理方式等等,即0~3G的用户空间是完全 ...
- c++输入错误重新输入_C程序-根据时长和时薪计算工资1.3(解决输入非数字选项退出的bug)...
程序内容: 提供五种工资菜单,用户自行选择,读取用户输入的工作时长,计算工资和净收入,及其缴纳的税金.(C Primer Plus 第7章 第8题) 程序更新:解决输入非数字选项后退出程序的bug. ...
- 欧洲杯推动夜间消费发展 便利蜂晚20时-凌晨2时服务人次创新高
6月21日消息,随着欧洲杯的开幕,中国消费者,尤其是球迷们,同样进入了"夏季狂欢季",并推动了部分城市的"夜经济"发展. 据便利蜂发布的数据显示,晚间20时-凌 ...
- 单片机数字钟(调时,调时闪烁,万年历,年月日)超详细解析
2019/07/13 单片机数字钟(调时,调时闪烁,万年历,年月日)超详细解析 发表日期:2019/07/13 单片机开发板:巫妖王2.0, 使用同款开发板可直接上板测试 文档说明: 实现功能 : 一 ...
最新文章
- pangolin最新版 v2.5.2.975
- 信息系统项目管理师全国通用吗
- 设计 Redis Key
- linux 64 32 编译支持,在64位linux上编译32位程序 for i386 intel
- Compound总法律顾问:PWG的稳定币声明不是积极提议,他们的任期没几天了
- Hessian HTTP POST访问时,Nginx返回411问题
- Ubuntu添加swap分区
- [转载] 【python】Python中*args和**kwargs的区别(在Python中如何使用可变长参数列表)
- 对uni.request()二次封装,封装$myRequest方法并挂载到全局
- 关于空间复杂度,你可能有几个疑问?
- interview-db
- python基础函数应用_python基础之函数的应用
- WPF学习记录1:ListView的一个模板
- 【Java面试】Java面试简历—轻松月薪过w(附赠最全简历模板)
- 华为路由器显示连接到服务器失败怎么办,华为路由器设置好了不能用怎么办 华为路由器无法上网问题-192路由网...
- SQL项目-IOS 应用商店分析
- mysql查询各专业人数_查询各专业的学生数。
- JS简单入门学习笔记一
- vue文件下载进度条
- 简单的LED交替闪烁程序
热门文章
- Netbackup 7.6新增功能和优势
- openssl漏洞检查
- hibernate 程序运行时的错误,及解决办法(不定期更新)
- 大道五目Flash英文版(Renju Problems)程序分析之禁手判断
- Android中scrollview与webview冲突事件
- hbase多master和动态添加节点
- 12.JAVA基本数据类型
- c语言链表不带头节点的排序,不带头结点的单向链表排序——插入排序(C语言)...
- python发送excel文件_Python操作Excel, 开发和调用接口,发送邮件
- python ide如何运行_ide - 如何运行Python程序?