function myFunction() {
var spreadsheet = SpreadsheetApp.getActive();
let region = "A1:B10";//Диапазон рабочей области
let numbersCol = 1;//Порядковый номер колонки в диапазоне region по которой идёт поиск
let countCol = 2;//Порядковый номер колонки в диапазоне region с количеством товара
let range = spreadsheet.getRange(region);
let ui = SpreadsheetApp.getUi();
var response = ui.prompt('+1 к количеству', 'Введите номер товара', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() == ui.Button.OK) {
if(range.getRow() <= range.getLastRow())
for(let i = 1; i <= range.getNumRows();i++){
if(range.getCell(i,numbersCol).getValue().toString().trim() == response.getResponseText().trim()){
let v = parseInt(range.getCell(i,countCol).getValue());
if(isNaN(v))
v = 0;
v++
range.getCell(i,countCol).setValue(v);
break;
}
if( i == range.getNumRows())
ui.alert("Товар с номером '"+response.getResponseText().trim() +"' не найден!")
}
}
};
=ЕСЛИ(E3 < A3;СЦЕПИТЬ("Пришёл раньше на ";ЕСЛИ(ОКРУГЛВНИЗ(((ЧАС(A3)*60+МИНУТЫ(A3)) - (ЧАС(E3)*60+МИНУТЫ(E3)))/60) > 0;СЦЕПИТЬ(ОКРУГЛВНИЗ(((ЧАС(A3)*60+МИНУТЫ(A3)) - (ЧАС(E3)*60+МИНУТЫ(E3)))/60);"ч.");"");" "; ОСТАТ((ЧАС(A3)*60+МИНУТЫ(A3)) - (ЧАС(E3)*60+МИНУТЫ(E3));60);" мин."); ЕСЛИ(E3 > B3;СЦЕПИТЬ("Опоздал на ";ЕСЛИ(ОКРУГЛВНИЗ(((ЧАС(E3)*60+МИНУТЫ(E3)) - (ЧАС(B3)*60+МИНУТЫ(B3)))/60) > 0;СЦЕПИТЬ(ОКРУГЛВНИЗ(((ЧАС(E3)*60+МИНУТЫ(E3)) - (ЧАС(B3)*60+МИНУТЫ(B3)))/60);"ч.");"");" "; ОСТАТ((ЧАС(E3)*60+МИНУТЫ(E3)) - (ЧАС(B3)*60+МИНУТЫ(B3));60);" мин.");"Прибыл вовремя"))
function w(&$ean,$res){
foreach($res as $k=>$v){
if($k==='barcodes')
$ean[] = $v;
if(is_array($v))
w($ean,$v);
}
}
w($ean,$response);
function getRects(dots,padding = 30){ //dots - Array[{x:x,y:y} ]
if(dots.length == 1)
dots = dots.concat([dots[0]]);
let rects = [];
if(dots.length > 1){
for(let i = 0; i < dots.length-1;i++){
let angle = getAngle(dots[i].x,dots[i].y,dots[i+1].x,dots[i+1].y);
rects.push({
x1:dots[i].x + padding * Math.cos(angle-Math.PI/2) + padding * Math.cos(angle+Math.PI),
y1:dots[i].y + padding * Math.sin(angle-Math.PI/2) + padding * Math.sin(angle+Math.PI),
x2:dots[i].x + padding * Math.cos(angle+Math.PI/2) + padding * Math.cos(angle+Math.PI),
y2:dots[i].y + padding * Math.sin(angle+Math.PI/2) + padding * Math.sin(angle+Math.PI),
x3:dots[i+1].x + padding * Math.cos(angle+Math.PI/2) + padding * Math.cos(angle),
y3:dots[i+1].y + padding * Math.sin(angle+Math.PI/2) + padding * Math.sin(angle),
x4:dots[i+1].x + padding * Math.cos(angle-Math.PI/2) + padding * Math.cos(angle),
y4:dots[i+1].y + padding * Math.sin(angle-Math.PI/2) + padding * Math.sin(angle),
});
}
}
return rects;
}
//Получить угол между двумя точками
function getAngle(dx, dy, dx1, dy1) {
return Math.atan2(dy - dy1, dx - dx1) + Math.PI;
}
function myfunc($text){
$text = utf8_encode($text);
$buffer = [];
foreach(mb_str_split($text) as $v)
$buffer[] = ord($v);
for ($i = count($buffer)-2; $i >= 0; $i--)
$buffer[$i] ^= $buffer[$i+1];
$buffer[count($buffer) - 1] ^= $buffer[0];
return implode(array_map("dec2hexbyte", $buffer));
}
function dec2hexbyte($number){
$hexval = dechex($number);
if(mb_strlen($hexval) == 1)
$hexval = "0".$hexval;
return mb_strtoupper($hexval);
}
$text = "my text";
echo myfunc($text);
Graphics g = Graphics.FromImage(gBitmap);
g.Clear(Color.White);
<svg fill="none" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="ig" x1="5.7886" y1="29.2114" x2="27.6465" y2="7.35349"
gradientUnits="userSpaceOnUse">
<stop stop-color="#FEE411" />
<stop offset="0.0518459" stop-color="#FEDB16" />
<stop offset="0.1381" stop-color="#FEC125" />
<stop offset="0.2481" stop-color="#FE983D" />
<stop offset="0.3762" stop-color="#FE5F5E" />
<stop offset="0.5" stop-color="#FE2181" />
<stop offset="1" stop-color="#9000DC" />
</linearGradient>
</defs>
<symbol id="telegram" viewBox="0 0 35 35">
<path
d="M17.5 35C27.165 35 35 27.165 35 17.5C35 7.83502 27.165 0 17.5 0C7.83502 0 0 7.83502 0 17.5C0 27.165 7.83502 35 17.5 35Z"
fill="#039BE5" />
<path
d="M8.00772 17.1208L24.8806 10.6152C25.6638 10.3323 26.3477 10.8063 26.094 11.9904L26.0954 11.989L23.2225 25.5238C23.0096 26.4833 22.4394 26.7167 21.6417 26.2646L17.2667 23.0402L15.1565 25.0731C14.9231 25.3065 14.7263 25.5033 14.2742 25.5033L14.5848 21.051L22.6931 13.7258C23.0461 13.4152 22.6144 13.2402 22.1492 13.5494L12.129 19.8581L7.80939 18.5106C6.87168 18.2131 6.85127 17.5729 8.00772 17.1208Z"
fill="white" />
</symbol>
<symbol id="instagram" viewBox="0 0 35 35">
<path
d="M17.5 32.8809C25.9946 32.8809 32.8809 25.9946 32.8809 17.5C32.8809 9.00539 25.9946 2.11914 17.5 2.11914C9.00539 2.11914 2.11914 9.00539 2.11914 17.5C2.11914 25.9946 9.00539 32.8809 17.5 32.8809Z"
fill="url(#ig)">
</path>
<path
d="M20.7676 8.95508H14.2393C11.3271 8.95508 8.96191 11.3203 8.96191 14.2324V20.7607C8.96191 23.6729 11.3271 26.0381 14.2393 26.0381H20.7676C23.6797 26.0381 26.0449 23.6729 26.0449 20.7607V14.2324C26.0449 11.3203 23.6797 8.95508 20.7676 8.95508ZM24.1377 20.7676C24.1377 22.627 22.627 24.1445 20.7607 24.1445H14.2324C12.373 24.1445 10.8555 22.6338 10.8555 20.7676V14.2393C10.8555 12.3799 12.3662 10.8623 14.2324 10.8623H20.7607C22.6201 10.8623 24.1377 12.373 24.1377 14.2393V20.7676Z"
fill="white" />
<path
d="M17.5 13.1318C15.0937 13.1318 13.1318 15.0937 13.1318 17.5C13.1318 19.9063 15.0937 21.8682 17.5 21.8682C19.9062 21.8682 21.8682 19.9063 21.8682 17.5C21.8682 15.0937 19.9062 13.1318 17.5 13.1318ZM17.5 20.1523C16.0371 20.1523 14.8477 18.9629 14.8477 17.5C14.8477 16.0371 16.0371 14.8477 17.5 14.8477C18.9629 14.8477 20.1523 16.0371 20.1523 17.5C20.1523 18.9629 18.9629 20.1523 17.5 20.1523Z"
fill="white" />
<path
d="M22.201 13.6107C22.6035 13.5455 22.8768 13.1663 22.8116 12.7639C22.7463 12.3615 22.3672 12.0881 21.9648 12.1534C21.5623 12.2186 21.289 12.5977 21.3542 13.0002C21.4194 13.4026 21.7986 13.676 22.201 13.6107Z"
fill="white" />
</symbol>
<use x="0" y="0" width="50" height="50" xlink:href="#telegram" />
<use x="0" y="50" width="50" height="50" xlink:href="#instagram" />
</svg>
$percent = 1.5;
$vals= [0.5,1.5,2.5,3.5,8.5];
?>
<select class="form-select" name="percent" id="percent" required>
<?PHP
foreach($vals as $v):
$text = $v == 8.5?"По умолчанию":"Меньше {$v}%";
$c = $v == $percent?"selected":"";
?>
<option <?=$c?> value="<?=$v?>"><?=$text?></option>
<?php
endforeach;
?>
</select>
$(document).ready(function(){
var now = new Date();
let timeOffset = now.getTimezoneOffset()*60*1000;
let timestamp = now.getTime();
let timeOpen = 13 ;//открытие 13:00
let dateOffset = 0;//Смещение в какой из дней будет показываться 0-2
let daysBeetwen = 3;//Каждые 3 дня показывать
let offset = Math.floor((timestamp-timeOffset)/86400000) % daysBeetwen;
if( offset == dateOffset && now.getHours() >= timeOpen ||
offset == (dateOffset+1)%daysBeetwen && now.getHours() < timeOpen)
$('#rec411316842').show();
else
$('#rec411316842').hide();
});
$(document).ready(function(){
var now = getMSC();
let timeOffset = now.getTimezoneOffset()*60*1000;
let timestamp = now.getTime();
let timeOpen = 13 ;//открытие 13:00
let dateOffset = 0;//Смещение в какой из дней будет показываться 0-2
let daysBeetwen = 3;//Каждые 3 дня показывать
let offset = Math.floor((timestamp-timeOffset)/86400000) % daysBeetwen;
if( offset == dateOffset && now.getHours() >= timeOpen ||
offset == (dateOffset+1)%daysBeetwen && now.getHours() < timeOpen)
$('#rec411316842').show();
else
$('#rec411316842').hide();
});
function getMSC() {
var d = new Date();
var utc = d.getTime() + (d.getTimezoneOffset() * 60000);
var nd = new Date(utc + (3600000*3));
return nd;
}
$rows= file_get_contents("ваш файл.txt");
$rows = mb_split("\r\n",$rows);
$rows= array_values(array_filter($rows,function($e){return mb_split("\|",$e)[1] == "busfor";}));
$onlyUnique = true;//доставать только уникальные
$result = [];
for($i = 0; $i < 7 && count($rows) > 0;$i++){
$inx =rand(0,count($rows)-1);
$result[] = $rows[$inx];
if($onlyUnique)
array_splice($rows,$inx,1);
}
var_dump($result);
function empty(obj){
return Object.keys(obj).length == 0 || Object.keys(obj).every(e=>!obj[e]);
}