BangleApps/apps/digiclock/digiclock.js

64 lines
1.6 KiB
JavaScript
Raw Normal View History

2020-09-24 16:51:49 +00:00
//load fonts
require("Font7x11Numeric7Seg").add(Graphics);
2021-06-24 13:28:46 +00:00
require("FontHaxorNarrow7x17").add(Graphics);
2020-09-24 16:51:49 +00:00
//screen position
2021-06-24 13:28:46 +00:00
const X = 170;
const Y = 140;
2020-09-24 16:51:49 +00:00
function draw() {
// Date Variables
2021-06-24 13:28:46 +00:00
var date = new Date();
var h = date.getHours();
var m = date.getMinutes();
var day = require("locale").dow(date);
var month = require("locale").month(date,1);
var dateNum = date.getDate();
var year = date.getFullYear();
var half = "AM";
var time = (" " + h).substr(-2) + ":" + ("0" + m).substr(-2);
2020-09-24 16:51:49 +00:00
if (h > 12) {
2021-06-24 13:28:46 +00:00
half = "PM";
h = h - 12;
2020-09-24 16:51:49 +00:00
}
//reset graphics
2021-06-24 13:28:46 +00:00
g.reset();
2020-09-24 16:51:49 +00:00
//draw the time
g.setFont("7x11Numeric7Seg", 5);
g.setFontAlign(1,1);
g.drawString(time, X, Y, true /*clear background*/);
2021-06-24 13:28:46 +00:00
g.setFont("7x11Numeric7Seg", 3);
g.drawString(("0"+date.getSeconds()).substr(-2), X+50, Y, true /*clear background*/);
2020-09-24 16:51:49 +00:00
g.setFontAlign(0,1);
g.setFont("HaxorNarrow7x17", 2);
g.drawString(half, X+30, Y-35, true);
g.setFont("HaxorNarrow7x17", 3);
g.drawString(day, X-60, Y+53, true);
2021-06-24 13:28:46 +00:00
g.drawString(month, X-100, Y+95, true);
g.drawString(dateNum, X-40, Y+95, true);
g.drawString(year, X-90, Y-55, true);
2020-09-24 16:51:49 +00:00
}
//clear screen at startup
2021-06-24 13:28:46 +00:00
g.clear();
2020-09-24 16:51:49 +00:00
//draw immediatly
2021-06-24 13:28:46 +00:00
draw();
2020-09-24 16:51:49 +00:00
var secondInterval = setInterval(draw, 1000);
// Stop updates when LCD is off, restart when on
Bangle.on('lcdPower',on=>{
if (secondInterval) clearInterval(secondInterval);
secondInterval = undefined;
if (on) {
secondInterval = setInterval(draw, 1000);
draw(); // draw immediately
}
});
2021-06-24 13:28:46 +00:00
// Show launcher when button pressed
Bangle.setUI("clock");
2020-09-24 16:51:49 +00:00
Bangle.loadWidgets();
Bangle.drawWidgets();