Um relógio binário, tal como o nome indica, é um relógio que indica as horas em binário (0’s e 1’s) e actualmente estão a ser vendidos em grande parte de lojas (online ou não) de gadgets.

Estes relógios possuem 10 leds, geralmente divididos em 2 linhas, 4 em cima e 6 em baixo. Com estes 10 leds é possível representar as horas e os minutos do dia. E isto como?
Os 4 leds superiores, equivalem a: 8 - 4 - 2 - 1 (horas) e os inferiores a: 32 - 16 - 8 - 4 - 2 - 1 (minutos)
Agora para saber as horas, é tão simples quanto somar os valores representados pelos leds acesos, por exemplo, imaginando que x é led ligado e o é led ligado:
0 x 0 0
x 0 0 x 0
04:36
0 x x x
x x x 0 0 0
07:56
E por aí fora…
Mais mais geek/nerd do que ter um relógio binário, é fazer um!
<?php
// Definir as horas/minutos para as variaveis em binário
$h = decbin(date(”h”));
$m = decbin(date(”i”));
// Só para manter os respectivos 4 e 6 bits
$h = substr( “0000″, 0, 4 - strlen( $h ) ) . $h;
$m = substr( “000000″, 0, 6 - strlen( $m ) ) . $m;
// Separar cada bit
$h = preg_split( ‘//’, $h, -1, PREG_SPLIT_NO_EMPTY );
$m = preg_split( ‘//’, $m, -1, PREG_SPLIT_NO_EMPTY );
// Ciclo para cada bit (correspondendo às horas)
foreach ( $h as $hora ) {
echo “<img src=\”" . $hora . “.jpg\” />”;
}
echo “<br />”;
// Ciclo para cada bit (correspondente aos minutos)
foreach ( $m as $min ) {
echo “<img src=\”" . $min . “.jpg\” />”;
}
echo “<br />”;
?>
Agora para terminar e completar este mini-geek-psycho-relógio-binário, é só colocar na mesma directoria duas imagens com os nomes 1.jpg e 0.jpg correspondendo ao led aceso e desligado (1 para aceso, 0 para desligado).
That’s all folks!
É por estas coisas que começo a duvidar da minha sanidade mental, eu prometo que vou tentar fazer algo mais produtivo.