Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function rand(min, max) {
- return min + Math.floor( ++max * Math.random() );
- }
- function shuffle(arr) {
- var i = 0, j, swap, len = arr.length;
- while (i < len) {
- j = Math.floor( Math.random() * len );
- swap = arr[j];
- arr[j] = arr[i];
- arr[i++] = swap;
- }
- }
- /**
- * Возвращает размер в байтах в понятном для человека формате.
- *
- * @param size размер в байтах, целое число
- * @param std стандарт, 'SI' | 'IEC'
- * @return string
- */
- function formatSize(size, std) {
- if (std) {
- std = std.toLowerCase();
- }
- var i = 0,
- base = std == 'si' ? 1000 : 1024,
- prefixes = ' KMGTPEZY';
- if (size < 1) {
- return 0;
- }
- else if (size >= base) {
- i = Math.floor( Math.log(size) / Math.log(base) );
- if (i >= prefixes.length) {
- return 'N/A';
- }
- size = ( size / Math.pow(base, i) ).toFixed(2) * 1 + ' ';
- }
- return size + prefixes[i] + ( std == 'iec' && i ? 'i' : '' ) + 'B';
- }
- /**
- * Возвращает продолжительность времени в формате Ч{1,}:М{2}:С{2} либо М{1,2}:С{2}.
- *
- * @param ms миллисекунды
- * @return string
- */
- function duration(ms) {
- var hours = ms / 3600000,
- minutes = hours % 1 * 60,
- seconds = Math.round(minutes % 1 * 60);
- minutes = Math.floor(minutes);
- return (hours >= 1 ? Math.floor(hours) + ':' : '') + (hours >= 1 && minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);
- }
- /**
- * Склоняет слово в зависимости от количества.
- *
- * @param count количество
- * @param base основа слова
- * @param ending1 окончание для ед.ч.
- * @param ending2 окончание для мн.ч.
- * @param ending3 еще одно окончание для мн.ч., если не задано, то слово
- * склоняется как в английском
- * @return string
- */
- function pluralize(count, base, ending1, ending2, ending3) {
- base = count + ' ' + base;
- if (ending3 === undefined) {
- return base + ( count == 1? ending1 : ending2 );
- }
- count %= 100;
- count = count > 20 ? count % 10 : count;
- return base + ( count == 0 || count > 4 ? ending3 : count > 1 ? ending2 : ending1 );
- }
- /**
- * Возвращает продолжительность времени словами.
- *
- * @param ms миллисекунды
- * @return string
- */
- function durationWords(ms) {
- // годов и месяцев нет, так как они имееют разную длительность
- var weeks = ms / 604800000,
- days = weeks % 1 * 7,
- hours = days % 1 * 24,
- minutes = hours % 1 * 60,
- seconds = minutes % 1 * 60;
- return ( weeks >= 1 ? pluralize( Math.floor(weeks), 'недел', 'я', 'и', 'ь' ) + ' ' : '' )
- + ( days >= 1 ? pluralize( Math.floor(days), 'д', 'ень', 'ня', 'ней' ) + ' ' : '' )
- + ( hours >= 1 ? pluralize( Math.floor(hours), 'час', '', 'а', 'ов' ) + ' ' : '' )
- + ( minutes >= 1 ? pluralize( Math.floor(minutes), 'минут', 'а', 'ы', '' ) + ' ' : '' )
- + pluralize( Math.round(seconds), 'секунд', 'а', 'ы', '');
- }
Advertisement
Add Comment
Please, Sign In to add comment