我想知道有没有人知道如何在MATLAB中计算时间戳之间的营业时间或分钟?假设我有两个时间戳:
我想要计算在工作日从
有没有人知道如何编写一个
提前感谢! 更新: @gnovice 我对您原始代码进行了一些更改。它适用于两个分开的时间范围!你觉得怎么样?
started: 22/06/2017 18:00
ended: 26/06/2017 09:00
我想要计算在工作日从
08:00
到 17:00
的时间差,周末不计入。应该是 600
分钟。有没有人知道如何编写一个
MATLAB
函数来实现它?
我也可以使用 python
和 / 或 R
。
新请求:
如果每个工作日的工作时间改为 9:30-11:30
和 13:00-15:00
。我想知道有没有人知道如何做到这一点?提前感谢! 更新: @gnovice 我对您原始代码进行了一些更改。它适用于两个分开的时间范围!你觉得怎么样?
function workMins = work_time(startTime, endTime)
dateBlock = repmat((dateshift(startTime, 'start', 'day'):...
dateshift(endTime, 'start', 'day')).', 1, 4); %'
dateBlock(:, 1) = dateBlock(:, 1)+hours(9)+minutes(30);
dateBlock(:, 2) = dateBlock(:, 2)+hours(11)+minutes(30);
dateBlock(:, 3) = dateBlock(:, 3)+hours(13)+minutes(00);
dateBlock(:, 4) = dateBlock(:, 4)+hours(15);
dateBlock(1, 1) = max(dateBlock(1, 1), startTime);
dateBlock(1, 3) = max(dateBlock(1, 3), startTime);
dateBlock(end, 2) = min(dateBlock(end, 2), endTime);
dateBlock(end, 4) = min(dateBlock(end, 4), endTime);
dateBlock((datestr(dateBlock(:, 1), 'd') == 'S'), :) = [];
workMins = max(diff(dateBlock, 1, 2), 0);
workMins(:,2) = [];
workMins = minutes(sum(workMins(:)));
end