php - 有48个1与0的字符串代表1天的时间, 半小时为单位
阿神
阿神 2017-05-16 13:03:25
0
3
483

需求是 如 当天的 00:30 - 11:00 转为仅有1与0的字符串, 其中 1 代表包含在时间段内, 0代表不包含

得出 00:30 - 11:00 的字符串为 011111111111111111111110000000000000000000000000

时间可能是散开分布, 不一定是连贯的. 如 11:00-12:00 14:00-16:00.

求解应该怎么做.谢谢各位大佬~

阿神
阿神

闭关修行中......

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!