time
в начало команды curl
time curl ...(параметры)...
> time sleep 5
________________________________________________________
Executed in 5.01 secs fish external
usr time 1.19 millis 0.13 millis 1.07 millis
sys time 3.55 millis 1.20 millis 2.35 millis
var cnt = 3;
var num = 8;
console.log(Array.from({ length: cnt }).map(() => num).join` + `);
.map(() => num)
писать .fill(num)
Array.from({ length: cnt })
можно писать так new Array(cnt)
var cnt = 3;
var num = 8;
console.log(new Array(cnt).fill(num).join` + `);
/* #000 - это черные выделеные дни */
.cell_wrapper.cal_date.current.isSelected:not(:is(.isSelected ~ &)) {
color: #fff;
background: #000;
}
/* #888888 - это серые выделеные дни */
.cell_wrapper.cal_date.current.isSelected ~ .isSelected{
color: #fff;
background: #888888;
}
/* #000 - это черные выделеные дни */
.cell_wrapper.cal_date.current.isSelected:not(:has( ~ .isSelected)) {
color: #fff;
background: #000;
}
Но сам скрипт календаря - кривой!
let date = new Date();
date.setDate(date.getDate()-121); // установим дату в текущую минус 121 день
console.log(date);
let ts = Date.now(); // Количество мс, прошедших с 1 января 1970г.
ts-=121*24*3600*1000; // Вычтем 121 день помножим на 24 часа, помножим на 3600 сек/час, помножим на 1000 мс/сек
let date = new Date(ts); // Создадим новую дату
console.log(date);
let date = new Date('2022-04-13T14:43:00Z');
let months = (Date.now() - date.getTime()) / (30*24*3600*1000);
console.log(`C момента 2022-04-13 прошло ${months.toFixed(1)} месяцев`);
let month;
month = 6.7343423;
month = Math.round(month * 2)/2;
console.log(month); // => 6.5
month = 6.8343423;
month = Math.round(month * 2)/2;
console.log(month); // => 7
// Пусть, список будет в строке разделенной вертикальной чертой
"contacts|goods|gallery|reviews|screen".split`|`
// Находим каждый элемент
.map(data=>document.querySelector(`.blocks__item[data-item="${data}"]`))
// Вешаем на элементы событие mouseenter
.forEach(el=>el.addEventListener('mouseenter',e=>{
// Класс активного элемента надо удалить только у активного элемента
document.querySelector`.blocks__item.blocks__item--active`.classList.remove`blocks__item--active`;
// А элементу, вызвавшему это событие надо добавить класс активности
e.target.classList.add`blocks__item--active`;
// Еще где-то какому-то элементу присвоим класс, частично формирующийся из атрибута элемента события
document.querySelector`.blocks__phone-bg`.className = `blocks__phone-bg blocks__phone-bg--${e.target.getAttribute`data-item`}`;
});
// Вот и все!
'click'
, 'right-click'
и 'double-click'
.tray.setContextMenu(menu)
- устанавливает переданное в параметре menu
меню как контекстное меню иконки трея. tray.popUpContextMenu([menu, position])
открывает установленное либо переданное в параметре menu
контекстное меню трея. Оба параметра menu
и position
не обязательны tray.closeContextMenu()
закрывает открытое меню трея.icon
. { const idgen=Object.assign(()=>idgen.gen.next().value,
{val:0,gen:(function*(){while(1)yield ++idgen.val})()});
Object.defineProperty(window,'uniqueId',{get:()=>idgen()}); }
// Проверочка
for( let i = 0; i < 3; i ++ ) console.log(uniqueId); // 1,2,3;
console.log('инфа по браузеру',navigator.userAgentData);
console.log('батарея',await navigator.getBattery());
console.log('местоположение',await navigator.geolocation.getCurrentPosition())
console.log('ip', await fetch('https://ipinfo.io',{credentials:'omit'}).then(res=>res.json()));
document.body.addEventListener('touchstart',
event=>{
event.preventDefault();
event.stopPropagation();
Nunenune(event);
}
);
pointerdown
и проч.