今天收到学员来信要求计算两个时间点之间间隔多少小时的算法,同时还附带要求:每满30分钟按0.5小时计算,如25分钟为0,45分钟只能计0.5小时。这个应用在计算加班工时中特别有用,现分享如下:
假设A列放置的是开始时间,B列放置是结束时间,C列中求加班小时数。
开始时间 | 结束时间 | 加班小时数 |
******** 8:00 | ******** 16:00 | 8 |
******** 8:00 | ******** 15:30 | 7.5 |
******** 16:00 | ******** 0:00 | 8 |
******** 16:00 | ******** 23:30 | 7.5 |
******** 0:00 | ******** 8:00 | 8 |
******** 0:00 | ******** 7:30 | 7.5 |
******** 19:30 | ******** 7:30 | 12 |
******** 19:30 | ******** 7:00 | 11.5 |
******** 16:00 | ******** 16:25 | 0 |
******** 16:00 | ******** 16:30 | 0.5 |
******** 16:00 | ******** 16:45 | 0.5 |
具体公式如下:=ROUNDDOWN(ROUND((B2-A2)*24*60,0)/30,0)/2
解释:时间与时间相减,得出的结果是以天为单位的小数,因此要乘以24小时再乘以60,转换为分钟,同时以30分钟为单位,进行无条件舍位操作ROUNDDOWN(),求出有几个30分钟,最后除以2,转换为小时。由于小数位精确的问题,以上方法求出的数据可能会少0.5小时,所以要再加上一个四舍五入函数ROUND(),确保小数位部份不出错。
联系客服