mclock: support 12h time

master
Ben Whittaker 2020-05-12 12:37:57 -04:00
parent 7a46ac82c8
commit 187798da70
3 changed files with 10 additions and 4 deletions

View File

@ -108,7 +108,7 @@
{ "id": "mclock", { "id": "mclock",
"name": "Morphing Clock", "name": "Morphing Clock",
"icon": "clock-morphing.png", "icon": "clock-morphing.png",
"version":"0.05", "version":"0.06",
"description": "7 segment clock that morphs between minutes and hours", "description": "7 segment clock that morphs between minutes and hours",
"tags": "clock", "tags": "clock",
"type":"clock", "type":"clock",

View File

@ -3,3 +3,4 @@
0.04: Improve performance, attempt to remove occasional glitch when LCD on (fix #279) 0.04: Improve performance, attempt to remove occasional glitch when LCD on (fix #279)
0.05: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast 0.05: Add "ram" keyword to allow 2v06 Espruino builds to cache function that needs to be fast
Fix issue where first digit could get stuck going from "2x:xx" to " x:xx" (fix #365) Fix issue where first digit could get stuck going from "2x:xx" to " x:xx" (fix #365)
0.06: Support 12 hour time

View File

@ -1,3 +1,4 @@
var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"];
var locale = require("locale"); var locale = require("locale");
var CHARW = 34; // how tall are digits? var CHARW = 34; // how tall are digits?
var CHARP = 2; // how chunky are digits? var CHARP = 2; // how chunky are digits?
@ -146,7 +147,7 @@ function drawDigits(lastText,thisText,n) {
x+=s+p+7; x+=s+p+7;
} }
} }
function drawSeconds() { function drawEverythingElse() {
var x = (CHARW + CHARP + 6)*5; var x = (CHARW + CHARP + 6)*5;
var y = Y + 2*CHARW + CHARP; var y = Y + 2*CHARW + CHARP;
var d = new Date(); var d = new Date();
@ -154,6 +155,8 @@ function drawSeconds() {
g.setFont("6x8"); g.setFont("6x8");
g.setFontAlign(-1,-1); g.setFontAlign(-1,-1);
g.drawString(("0"+d.getSeconds()).substr(-2), x, y-8, true); g.drawString(("0"+d.getSeconds()).substr(-2), x, y-8, true);
// meridian
if (is12Hour) g.drawString((d.getHours() < 12) ? "AM" : "PM", x, Y + 4, true);
// date // date
g.setFontAlign(0,-1); g.setFontAlign(0,-1);
var date = locale.date(d,false); var date = locale.date(d,false);
@ -164,13 +167,15 @@ function drawSeconds() {
function showTime() { function showTime() {
if (animInterval) return; // in animation - quit if (animInterval) return; // in animation - quit
var d = new Date(); var d = new Date();
var t = (" "+d.getHours()).substr(-2)+":"+ var hours = d.getHours();
if (is12Hour) hours = ((hours + 11) % 12) + 1;
var t = (" "+hours).substr(-2)+":"+
("0"+d.getMinutes()).substr(-2); ("0"+d.getMinutes()).substr(-2);
var l = lastTime; var l = lastTime;
// same - don't animate // same - don't animate
if (t==l || l=="-----") { if (t==l || l=="-----") {
drawDigits(l,t,0); drawDigits(l,t,0);
drawSeconds(); drawEverythingElse();
lastTime = t; lastTime = t;
return; return;
} }