Из того, что я вижу из консоли JavaScript в Chrome, Math.random()
генерирует число от 0 до 0.9999999999999999. Принимая это во внимание, вы можете получить то, что хотите, добавив модификатор. Например, вот функция, которая даст вам квази-случайное поплавок между 0 и 1, при этом 1 включительно:
function randFloat() {
// Assume random() returns 0 up to 0.9999999999999999
return Math.random()*(1+2.5e-16);
}
Вы можете попробовать это в консоли, нажав 0.9999999999999999*(1+2.5e-16)
- он будет верните ровно 1. Вы можете принять это дальше и вернуть поплавок между 0 и 1024 (включительно) с помощью этой функции:
function randFloat(nMax) {
// Assume random() returns 0 up to 0.9999999999999999
// nMax should be a float in the range 1-1024
var nMod;
if (nMax<4) nMod = 2.5e-16;
else if (nMax<16) nMod = 1e-15;
else if (nMax<32) nMod = 3.5e-15;
else if (nMax<128) nMod = 1e-14;
else if (nMax<512) nMod = 3.5e-14;
else if (nMax<1024) nMod = 1e-13;
return Math.random()*(nMax+nMod);
}
Вероятно, есть более эффективный алгоритм.
В приведенном ниже примере я использовал: =MAX(0,MIN($O$2,H2)-MAX($O$1,G2))
и отформатирован как [мм].
В Excel единицами являются дни, поэтому, если вы хотите рассчитать количество минут между двумя временными метками, вам нужно вычесть обе и умножить разницу на 24*60
(это количество минут за один день). [116 ]
например. Вы начинаете работать в 09:07
(ячейка B2
) и заканчиваете в 18:07
(ячейка B3
), имея 45-минутный перерыв. Тогда время, которое вы проработали в минутах:
=(B3-B2)*24*60-45
Убедитесь, что форматирование ячейки правильное (общее), вы получите: 495.