Skip to content

Instantly share code, notes, and snippets.

@tmrDevelops
Last active August 29, 2015 14:27
Show Gist options
  • Select an option

  • Save tmrDevelops/b6693c239096b8748c9c to your computer and use it in GitHub Desktop.

Select an option

Save tmrDevelops/b6693c239096b8748c9c to your computer and use it in GitHub Desktop.
Base2 Time Hue

Base2 Time Hue

Hue clock.
Hour, minute, && seconds are represented by binary numbers 0,1. Standard time is displayed at bottom of screen. Meant to be a full screen demo.

A Pen by Tiffany Rayside on CodePen.

License.

<div id="hour" class="box"></div>
<div id="minute" class="box"></div>
<div id="second" class="box"></div>
<div class="boxd">
<div id = "h"></div>
<div id = "m"></div>
<div id = "s"></div>
<div id = "ampm" ></div>
</div>
window.onload = function(){
t();
};
var $ = function(id) {
return document.getElementById(id);
};
var t = function() {
var d = new Date,
s = d.getSeconds() + d.getMilliseconds() / 1000,
m = d.getMinutes() + s / 60,
h = d.getHours() + (m / 60 );
$('hour').style.color = col(h / 24);
$('hour').innerHTML = 'H:' + num0(h);
$('minute').style.color = col(m / 60);
$('minute').innerHTML = 'M:' + num0(m);
$('second').style.color = col(s / 60);
$('second').innerHTML = 'S:' + num0(s);
var ampm = " PM ";
var sh= d.getHours();
if (sh < 12){
ampm = " AM ";
}
if (sh == 00) {
sh = 12;
}else if (sh >= 13) {
sh -= 12;
}
$('h').style.color = col(h / 24);
$('h').innerHTML = sh + ' :';
$('m').style.color = col(m / 60);
$('m').innerHTML = num00(d.getMinutes()) + ' :';
$('s').style.color = col(s / 60);
$('s').innerHTML = num00(d.getSeconds());
$('ampm').style.color = col(d.getDate() / h) + ' ';
$('ampm').innerHTML = ampm;
setTimeout("t()", 1000);
}
var num0 = function(num) {
if(num < 2) return "00000" + num.toString(2);
else if(num < 4) return "0000" + num.toString(2);
else if(num < 8) return "000" + num.toString(2);
else if(num < 16) return "00" + num.toString(2);
else if(num < 32) return "0" + num.toString(2);
else if(num < 64) return num.toString(2);
}
var num00 = function(str){
var tStr = str.toString();
if( tStr.length < 2 ){
str = 0 + tStr;
}
return str;
}
var col = function(hue) {
var upd = 1 - .15 * (1 - Math.sin(Math.PI * (hue + 30) / 180)),
rgb = "#";
for (var i = 0; i < 3; i++) {
rgb += hex(upd * conv(360 * hue - i * 120));
}
return rgb;
};
var conv = function(hue) {
while(hue < 0) {
hue += 360;
}
return (hue < 60) ? 1 :
(hue < 120) ? (2 - hue / 60) :
(hue < 240) ? 0 :
(hue < 300) ? (hue / 60 - 4) : 1;
}
var hex = function(i) {
if (i < 0) i = 0;
else if (i > 1) i = 1;
i = Math.round(255 * i);
return ("0" + i.toString(16)).substr(-2);
}
body {
background-color: hsla(0, 0%, 10%, 1);
overflow: hidden;
width: 100%;
font-family: Monospace;
text-shadow: -1px 2px hsla(0,0%,0%,.1), -3px 4px hsla(0,0%,0%,.1), 5px -6px hsla(0,0%,0%,.1);
}
.boxd{
font-size: 7vh;
width:100%;
text-align:center;
}
#h, #m, #s, #ampm{
display:inline;
}
.box{
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
align-items: flex-start;
padding: .88em 0;
font-size: 10vh;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment