• Как узнать даты до определённого числа?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Объект Date в JavaScript умеет всё что нужно.
    Парсить дату:
    const D = new Date('2022-08-01'); // объект Date с указанной датой


    Добавлять дни:
    const D = new Date(); // сегодня, сейчас
    D.setDate( D.getDate() + 1 ); // завтра
    месяц, год – при надобности изменятся автомагически.
    Ответ написан
    1 комментарий
  • Как узнать что за кодировка?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Каждая цифра имеет 10 вариантов (от 0 до 9).

    Каждая буква имеет чуть больше вариантов, в зависимости от алфавита (a-zA-Z это 52 варианта, но некоторые буквы могут быть специально исключены по каким-то соображениями). А если это символ, который может быть как буквой, так и цифрой, то вариантов ещё больше (например, 62). В кодировке base64 добавляются ещё пара символов, чтобы было круглое число 64, хотя реально там чуть сложнее.

    Количество вариантов - это условно мера информации, которую можно запихнуть в символ (или в строку соответственно).

    Для строки количество вариантов можно посчитать перемножением для каждого символа. Например, строка из двух цифр (от 00 до 99) - это 100 вариантов (10*10). Три цифры - 1000 вариантов и так далее. Аналогично с буквенно-цифирным алфавитом. Набор из двух таких символов - это 62*62 = 3844 варианта. Здесь уже чётко видно, что три цифры можно перевести в два символа без потери информации.
    То есть NNN ----> CC, где N - цифра, C - буква или цифры, с учётом регистра.
    То есть символов нужно меньше, чем цифр.

    Как именно происходит кодирование, сказать сложно. Самый простой вариант - это воспринимать цифирную последовательность, как число, и далее работать с числом. Делается это примерно так (алгоритм на пальцах):
    1) Делим число на 62.
    Остаток от деления - это номер буквы в алфавите, выбираем эту букву. Результат деления без остатка переходит как число для следующего шага.
    2) Делим (получившееся) число на 62.
    Остаток от деления - это номер следующей буквы, которая плюсуется к предыдущей.
    3) И так далее.
    Так происходит кодирование, в результате которого формируется строка из букв.

    Обратное кодирование примерно такое же, только все шаги в обратную сторону делаются.

    Однако здесь стоит упомянуть, что это именно самый простой алгоритм кодирования. Обычно всё же есть какие-то нюансы, некая избыточность. Например, может быть правило, что последние две цифры обязаны быть контрольной суммой остальных цифр в последовательности. Поэтому если кто-то по ошибке (или со злым умыслом) поменяет какую-то цифру, то код станет невалидным. Это своеобразная защита. Поэтому подробности и нюансы кодирования нужно спрашивать у разработчика штрих-кода, нужно обратиться к документации...

    ...Либо заниматься хакерством - пытаться подобрать алгоритм кодирования.

    Наконец, в кодирование для более полной защиты может быть также встроено некое простое шифрование. Например, это могут быть какие-то перестановки, какое-то перемешивание или преобразования по определённом обратимому алгоритму. Здесь опять же нужно либо иметь доступ к документации, либо "взламывать" кодирование. В общем, всё зависит от того, хотят ли разработчики кода, чтобы вы понимали принцип его работы или нет. Если нет, то остаётся только второе.
    Ответ написан
    Комментировать
  • Как сделать текст в прогрес-баре?

    SuperToster
    @SuperToster
    Добавить еще один блок:
    jsfiddle.net/9dmyu27s/

    Если нельзя менять разметку, можно добавить дата атрибут:
    jsfiddle.net/swjdyxh9/

    Вариантов море, нужно больше вводных.
    Ответ написан
    2 комментария
  • Почему скрипт не видит функцию в setInterval?

    @GrayHorse
    Функция functionName существует в контексте контент скрипта.

    При добавление кнопки с onclick="functionName()" по клику на нее functionName будет вызывать в контексте веб страницы, где данной функции нет.

    1. Добавь кнопку.
    2. Добавь эвент листенер через addEventListener на нее.

    Будет работать.
    Ответ написан
    1 комментарий