Here are a few small JavaScript routines, dealing with the time:
Here is the code:
// This code was modified to display both the hexclock and normal time by
// Nick Glover <http://hubcap.clemson.edu/~nglover>
// ---------------------------------------------------------------------------
// This code was adapted from the clock on the netscape javascript page
// by Mark Vincent Rogers
// ---------------------------------------------------------------------------
// Hex clock concept is also by Mark Rogers
// ---------------------------------------------------------------------------
// This code can be modified in any way as long as credit is given to the
// original authors, but you can't convert this to use AM or PM, it must
// be on 16-hexhour time.
// ---------------------------------------------------------------------------
// It was further hacked by Beat Bolli to include the Swatch .beats,
// add the hex and decimal seconds and UNIX ticks and clean up the hexclock
// code in general by using the bit shift instead of division and modulo
// operators.
// $Id: clocks.js 935 2007-11-22 08:09:47Z bb $
function nibble(dec) {
return "0123456789ABCDEF".substr(dec & 0x0F, 1);
}
function florence(dec) {
return "QBPVFZSDTJCGKYXW".substr(dec & 0x0F, 1);
}
function padl(n, w, c) {
n = String(n);
while (n.length < w)
n = c + n;
return n;
}
function hms(t) {
return "" +
padl(t.getHours(), 2, " ") + ":" +
padl(t.getMinutes(), 2, "0") + ":" +
padl(t.getSeconds(), 2, "0");
}
function seconds(t) {
return t.getTime() / 1000 % 86400; // Seconds since midnight
}
function showtime() {
// Calculate UTC
var utc = new Date();
utc.setTime(utc.getTime() + utc.getTimezoneOffset() * 60 * 1000);
var utctimeValue = hms(utc);
// Calculate standard time
var now = new Date();
var stdtimeValue = hms(now);
var sec = seconds(now);
// Calculate hex time
var hex = Math.floor(sec * 0x10000 / 86400);
var hexhours = nibble(hex >> 12);
var hexminutes = nibble(hex >> 8) + nibble(hex >> 4);
var hexseconds = nibble(hex);
var hextimeValue = hexhours + "_" + hexminutes + "_" + hexseconds;
// Calculate twice sixteen hours hex time (florencetime)
var flo = Math.floor(sec * 0x20000 / 86400);
var flohours = (flo < 0x10000 ? ' ' : 'B') + florence(flo >> 12);
var flominutes = florence(flo >> 8) + florence(flo >> 4);
var floseconds = florence(flo);
var flotimeValue = flohours + "." + flominutes + "\u2019" + floseconds.toLowerCase() + " H";
// Calculate metric time
var dec = Math.floor(sec * 100000 / 86400);
var decseconds = dec % 100;
dec = (dec - decseconds) / 100;
var decminutes = dec % 100;
var dechours = (dec - decminutes) / 100;
var decTimeValue = dechours + "." + padl(decminutes, 2, "0") + "." + padl(decseconds, 2, "0");
// Calculate Swatch .beats, that is, 1 hour east of UTC
now.setTime(now.getTime() + (now.getTimezoneOffset() + 60) * 60 * 1000);
var beattime = Math.floor(seconds(now) * 1000 / 86400);
var beattimeValue = "@" + padl(beattime, 3, "0");
// Calculate UNIX ticks
var tickValue = now.getTime() / 1000;
// Set the form values
document.clock.stdface.value = stdtimeValue;
document.clock.utcface.value = utctimeValue;
document.clock.hexface.value = hextimeValue;
document.clock.floface.value = flotimeValue;
document.clock.decface.value = decTimeValue;
document.clock.beatface.value = beattimeValue;
document.clock.tickface.value = tickValue;
setTimeout("showtime()", 100);
}