dot-beat-time
Version:
Convert legacy time to decimal internet time, or beats.
28 lines (22 loc) • 754 B
JavaScript
// Math for calculating beats taken from the `beats` rust crate: https://docs.rs/beats
function format(beats, long) {
var beatsFixed = long ? beats.toFixed(2) : Math.floor(beats).toFixed(0);
if (beats < 10) {
return "@00".concat(beatsFixed);
} else if (beats < 100) {
return "@0".concat(beatsFixed);
}
return "@".concat(beatsFixed);
}
function wrap(beats) {
return beats >= 1000 ? Math.abs(beats - 1000) : beats;
}
function fromDate(date, long) {
var seconds = date.getUTCSeconds() + (date.getUTCMinutes() * 60 + (date.getUTCHours() + 1) * 3600);
var beats = Math.round(seconds / 86.4 * 100) / 100;
return format(wrap(beats), !!long);
}
function now(long) {
return fromDate(new Date(), long);
}
export { fromDate, now };