我试图计算两次之间的差异。 它运作良好,除非两个日期在午夜的两边。 在这种情况下,我得到一个否定的答案。 任何想法如何我可以改善代码来解决这个问题?计算2天之间的时间差android

String sleepStart = editFallAsleepTime.getText().toString();

String sleepStop = editWakeUpTime.getText().toString();

String awakeTimeString = ((Globals) getActivity().getApplication()).getAwakeTime();

//HH converts hour in 24 hours format (0-23), day calculation

SimpleDateFormat format = new SimpleDateFormat("HH:mm");

Date d1 = null;

Date d2 = null;

try

{

d1 = format.parse(sleepStart);

d2 = format.parse(sleepStop);

float t1 = d1.getTime();

float t2 = d2.getTime();

if(t2 <= t1){

t2 +=24;

}

float diff = t2 - t1;

//in milliseconds

float diff = d2.getTime() - d1.getTime();

float diffHours = diff/(60 * 60 * 1000);

float awakeTime = Float.valueOf(awakeTimeString);

float awakeHours = awakeTime/60;

float calcEffectiveSleep = diffHours - awakeHours;

String sleepTime = Float.toString(diffHours);

String effectiveSleep = Float.toString(calcEffectiveSleep);

((Globals) getActivity().getApplication()).setEffectiveSleep(effectiveSleep);

}

catch (Exception e)

{

Log.e("timediff","didntwork");

}

+0

看看这里的答案:http://stackoverflow.com/questions/1555262/calculating-the-difference-between-two-java-date-instances –

+0

你只用工作一次。所以你假设两个时间都在同一天?你的问题只发生在结束

+0

不,我不假设两个时间都在同一天。如果第一次在23.59之前,我应该假设他们不是。我应该把日期放在那里吗? –

android 时间差格式化,计算2天之间的时间差android相关推荐

  1. Excel 快速计算相邻行之间的时间差

    需求:将表中所有相邻行之间的时间差(单位:秒)计算出来,并保留两位小数. 第一步:创建列名. 第二步:求前两行的时间差值 K3代表列(K)为3的行,K2代表列(K)为2的行,这里的时间单位是小时,需要 ...

  2. android 广播观察者,BroadcastReceiver和Activity之间的通信 – android

    我的应用程序中有一个广播接收器,每次用户接到来电时都会被触发.现在,当它发生时,我需要广播接收器来调用特定活动中的特定方法.现在,我尝试将此方法设置为静态,因此可用,但有些东西告诉我这是一个非常糟糕的 ...

  3. mysql 日期时间差_MySql计算两个日期的时间差函数

    例子: create table route( des varchar(20) not null, start datetime not null ); 计算日程表中距离开始时间还有5分钟到15分钟的 ...

  4. MySql计算两个日期的时间差

    MySql计算两个日期的时间差 MySql计算两个日期的时间差有两种可供选择 第一种.TIMESTAMPDIFF函数 TIMESTAMPDIFF函数,需要传入三个参数,第一个是比较的类型,可以比较FR ...

  5. com.qihoo.android.float window,全民枪战360版(com.crisisfire.android.qihoo) - 3.23.1 - 游戏 - 酷安...

    权限信息 · 计算应用存储空间 · com.asus.msa.SupplementaryDID.ACCESS · 创建帐户并设置密码 · 启用和停用同步 · 读取同步设置 · android.perm ...

  6. IOS 计算两个时区之间的时间差

    我们首先使用NSDate来创建两个时间,将两个时间都格式化.转换为字符串格式: NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init] ...

  7. 计算SharePoint两个日期和时间字段之间的时间差值

    计算SharePoint两个日期和时间字段之间的时间差值 在SharePoint中,有一个"日期和时间(Date and Time)"类型的字段,使用此字段不仅可以只存储日期值,还 ...

  8. js计算两个时间戳之间的时间差(多少天、时、分、秒)

    util.js 文件中 1.定义方法 //计算两个时间之间的时间差 多少天时分秒 function intervalTime(startTime,endTime) {// var timestamp= ...

  9. Android studio实现计算BMI指数(两个页面之间的跳转)

    BMI计算器所实现的内容 1.两个页面的跳转 a.intent组件 2.根据所选单选框中的按钮进行BMI指数的判断 a.单选按钮监听 具体代码呈现 bmicalculate.xml <?xml ...

  10. ios 计算两个时间相差秒数_Ios中时间差的计算,NSData与NSCalendar(日历)对象

    时间差的计算: 计算过去时间与当前时间的时间差 注意:其中的NSDateFormatter时间格式化类初始化非常消耗性能,如果多次使用,建议定义为全局. NSString *timeStr = @&q ...

最新文章

  1. C++编程语言之Lambda 函数与表达式
  2. 第九届蓝桥杯决赛JavaC组真题——详细答案对照(完整版)
  3. python 爬虫框架_Python常用的几个高效率的爬虫框架
  4. 机器学习模型的性能指标
  5. EasyUI DataGrid 中字段 formatter 格式化不起作用
  6. c语音学习-输入一个字母,输出其对应的ASCII码
  7. java里不支持post请求_java – Spring Boot – 不支持请求方法’POST’
  8. Windows VS2017 编译 libssh2 1.7.0(执行命令、文件上传、下载)
  9. 如何在本地使用markdown进行博客编辑
  10. 第一章:WTL的5个W
  11. 1731: [Usaco2005 dec]Layout 排队布局*
  12. 高等代数——大学高等代数课程创新教材(丘维声)——3.4笔记+习题
  13. 数字图像处理-空间域图像增强
  14. 点云配准(PCL+ICP)
  15. 『Others』markdown简历制作
  16. 10015---MySQL--事务
  17. 拆卸计算机主机的步骤是,拆卸主机的图解步骤
  18. 软件开发七宗罪(转)
  19. apache kafka技术分享系列(目录索引)
  20. HDU 5148 Cities

热门文章

  1. Andorid Binder进程间通信---Binder本地对象,实体对象,引用对象,代理对象的引用计数...
  2. Review JDBC
  3. C# HashSet 实例
  4. SQL根据下标,返回split分割后字符串
  5. DDK nmake : error 解决方法
  6. 18.高性能MySQL --- 大文件传输
  7. 6.Jenkins 权威指南 --- 高级构建
  8. 4.Jenkins 权威指南 --- 自动化测试
  9. 35. 内容协商和转码
  10. 25. PHP 文件处理