php - Il y a 48 chaînes de 1 et 0 représentant l'heure d'une journée, en unités d'une demi-heure
阿神
阿神 2017-05-16 13:03:25
0
3
498

L'exigence est de convertir 00h30 - 11h00 du jour en cours en une chaîne de seulement 1 et 0, où 1 signifie inclus dans la période et 0 signifie non inclus

La chaîne résultante de 00h30 à 11h00 est 0111111111111111111111000000000000000000000000000

Les horaires peuvent être dispersés et pas nécessairement cohérents. Par exemple, 11h00-12h00 et 14h00-16h00.

S'il vous plaît, dites-moi quoi faire. Merci les gars~

阿神
阿神

闭关修行中......

répondre à tous(3)
淡淡烟草味

Écrit une version js pour la console

let calcPos = arr=>arr[0]*2+(arr[1]===0?0:1);
([[0,30],[11,0]].reduce(
    (a,b,i,arr)=>
        a+= new Array(calcPos(b)+(i===0||i%2===0?0:1)-a.length)
            .fill(i%2===0?"0":"1")
            .join("")
    , "")+new Array(48).fill("0").join(""))
    .slice(0,48);

Le temps est utilisé[[0,30],[11,0]]表示00:30 - 11:00, donc la deuxième situation est comme ça

([[0,30],[11,0],[14,0],[16,0]].reduce((a,b,i,arr)=>a+=new Array(calcPos(b)+(i===0||i%2===0?0:1)-a.length).fill(i%2===0?"0":"1").join(""), "")+new Array(48).fill("0").join("")).slice(0,48);

Ce qui suit est le décodage

("0"+"011111111111111111111110000011111000000000000000")
    .split("")
    .reduce(
        (a,b,i,arr)=>
            i===0?a:b!==arr[i-1]?[...a, (b==="1"?i:(i-1)) -1]:a
        , [])
    .map(i=>[(i-(i%2===0?0:1))/2, i%2===0?0:30]);
黄舟

Convertissez le temps en secondes, et vous pouvez changer les secondes en binaire. Quant à savoir si vous pouvez utiliser le format binaire selon la table de codage ou d'autres méthodes, c'est à vous de décider

.
曾经蜡笔没有小新

L'unité d'une demi-heure divise 1 jour en 48 segments. 0-47 indique que le numéro de segment correspond à chaque période de temps.
La i-ième chaîne de chaîne correspond au numéro de segment i. time. 1 indique que ce n'est pas pendant cette période.
Le programme spécifique n'est pas difficile à écrire.
Demandez simplement le numéro de segment et remplacez le contenu de la chaîne.
Le numéro de segment permet de convertir le temps en heures, puis de le diviser par 0,5 pour arrondir.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal