当前位置: 首页 > 知识库问答 >
问题:

如何获得相对于正式营业时间的时差

何超英
2023-03-14

我必须显示员工相对于官方工作时间的总工作时间。如果任务已启动,则开始时间和结束时间输入到数据库中。

条目类似于:

start time= `2013-10-18 16:06:16.840`
end time=`2013-10-22 16:09:09.760`

工作时间可根据组织进行配置。

工作时间 = 7.45 (7 小时 45 分钟) = 1 天

如果某人的工作时间超过工作时间,这被认为是额外工作,被认为是额外时间。

我需要根据用户工作了一天的产量。一天的输出,如

7.45  hour then 1 days 
7.50 hour then 1 days and 5 minute
14.50 hour then 1 days, 7 hour and 5 minutes

我已经完成了下面的编码。它没有给出我期望的敏锐结果。

我所做的:

1) take difference of two days
2) instead of using 24 hour, I used business hour.

代码:

 public static long[] getTimeDifference(Date d1,Date d2,int holiday,String businessHour)
    {
    long hour=0;
     if(businessHour.indexOf(".")!=-1)
     {
     hour=Long.valueOf(businessHour.substring(0,businessHour.indexOf(".")));///check for hour
     }
     else
     {
     hour=Long.valueOf(businessHour);
     }
     long[] time=new long[3];
     long diff = d2.getTime() - d1.getTime();
                     
     //double diffSeconds = diff / 1000 % 60;
     long diffMinutes = diff / (60 * 1000) % 60;
     long diffHours =  (diff / (60 * 60 * 1000) % hour);
     long diffDays =   (diff / (hour * 60 * 60 * 1000));
    diffDays=diffDays-holiday;
     time[0]=diffDays;
     time[1]=diffHours;
     time[2]=diffMinutes;
                     
     return time;
    }

输出: 11 天: 05 小时: 02 分钟

我还没有包含微小的逻辑,我怎么能做实现呢?我不知道。我对此感到困惑。

共有1个答案

陆俊迈
2023-03-14

要获取两个日期之间经过的天、分和秒,您可以执行以下操作:

    long hour = 0;
    if (businessHour.indexOf(".") != -1) {
        hour = Long.valueOf(businessHour.substring(0,
            businessHour.indexOf(".")));// /check for hour
    } else {
        hour = Long.valueOf(businessHour);
    }
    long[] time = new long[3];
    long diff = d2.getTime() - d1.getTime();

    // double diffSeconds = diff / 1000 % 60;

    double diffDays = (diff / (24 * 60 * 60 * 1000));
    double diffHours = (diff / (60 * 60 * 1000)) - diffDays*24;
    double diffMinutes = diff / (60 * 1000) - (diffDays*24 + diffHours) * 60;

    time[0] = diffDays;
    time[1] = diffHours;
    time[2] = diffMinutes;

但我不知道这是不是你想要的。

 类似资料:
  • 问题内容: 在我的商店数据库中,我需要有营业时间。您是否知道如何在dB中实现这一点? 营业时间为周一至周日,每天可以有2个开放窗口(例如09:00-12:00、16:00-19:00) 问题答案: 建一个表,把它添加一个外键表的主键,一个场,。数据应如下所示: 这将使您有机会构建任何类型的日程表,并根据需要设置任意数量的窗口以及所需的异常数量。它是通用的,仅限于期望所有星期都相同的事实。没有考虑假

  • 问题内容: 我想为FIFA2014世界杯比赛创建一个警报应用程序,在该应用程序中我有一个服务器,用于在巴西/英亩存储比赛的日期和时间,并且我的客户端是android应用程序,而android设备可能具有任何可能的时区所以我的问题是我想将巴西/英亩的时间转换为具有不同时区的本地android设备的时间,经过大量的谷歌搜索后,我开始了解joda数据和时间库,但是在android中它太慢了,所以请提出任

  • 问题内容: 如何获取JavaScript时间戳? 与Unix时间戳类似,即代表当前时间和日期的单个数字。可以是数字或字符串。 问题答案: Short & Snazzy: 一元运算符(例如)会触发物件中的方法,并传回时间戳记(不做任何变更)。 Details: 在几乎所有当前的浏览器上,您都可以使用以毫秒为单位的UTC时间戳; IE8和更早版本是一个明显的例外)。 但是,您可以轻松地对此进行填充:

  • 问题内容: 在Java中获得UNIX正常运行时间的最佳方法是什么?我是否可以使用标准的Java库/函数,还是应该使用运行时的exec或ProcessBuilder执行“正常运行时间”?谢谢 问题答案: 您可以阅读: 从维基百科: 显示自上次重新启动以来系统已开启多长时间: 第一个数字是系统启动的 总秒数 。第二个数字是机器空闲的时间(以秒为单位)。

  • 问题内容: 我在Python中有一个命令行程序,需要花一些时间才能完成。我想知道完成跑步所需的确切时间。 我看过该模块,但似乎仅适用于少量代码段。我想安排整个节目的时间。 问题答案: Python中最简单的方法: 假设你的程序至少需要十分之一秒才能运行。 输出:

  • 我尝试了许多方法,但没有得到一个mp3文件的确切长度值。 随着电影: 我得到的结果是: 使用诱变剂: 我收到了另一个持续时间值: 使用windows media player打开文件时的实际持续时间值:2m49s 我不知道我的音频文件发生了什么,我测试了音乐网站上的一些文件,仍然得到了正确的值。这是我的音频文件