From 7b0f5beb2ced6913e84b8efd08ba26ce918b48ae Mon Sep 17 00:00:00 2001 From: Ben Whittaker Date: Mon, 11 May 2020 23:25:59 -0400 Subject: [PATCH] Add 12 hour time to imgclock --- apps/imgclock/ChangeLog | 1 + apps/imgclock/app.js | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/imgclock/ChangeLog b/apps/imgclock/ChangeLog index c305af689..ae978f9f9 100644 --- a/apps/imgclock/ChangeLog +++ b/apps/imgclock/ChangeLog @@ -4,3 +4,4 @@ 0.04: Fix hour alignment for single digits Scaling for background images <240px wide 0.05: Fix memory/interval leak when LCD turns on +0.06: Support 12 hour time \ No newline at end of file diff --git a/apps/imgclock/app.js b/apps/imgclock/app.js index 57b90c711..dc961f58b 100644 --- a/apps/imgclock/app.js +++ b/apps/imgclock/app.js @@ -3,6 +3,7 @@ Draws a fullscreen image from flash memory Saves a small image to flash which is just the area where the clock is Keeps an offscreen buffer and draws the time to that */ +var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]; var inf = require("Storage").readJSON("imgclock.face.json"); var img = require("Storage").read("imgclock.face.img"); var IX = inf.x, IY = inf.y, IBPP = inf.bpp; @@ -29,6 +30,12 @@ if (!bgimg || !bgimg.length) createBgImg(); function draw() { var t = new Date(); + var hours = t.getHours(); + var meridian = ""; + if (is12Hour) { + meridian = (hours < 12) ? "AM" : "PM"; + hours = ((hours + 11) % 12) + 1; + } // quickly set background image new Uint8Array(cg.buffer).set(bgimg); // draw time @@ -36,7 +43,7 @@ function draw() { var x = 40; cg.setFont("7x11Numeric7Seg",3); cg.setFontAlign(1,-1); - cg.drawString(t.getHours(), x, 0); + cg.drawString(hours, x, 0); x+=2; cg.fillRect(x, 10, x+2, 10+2).fillRect(x, 20, x+2, 20+2); x+=6; @@ -46,6 +53,7 @@ function draw() { cg.setFont("7x11Numeric7Seg",1); cg.drawString(("0"+t.getSeconds()).substr(-2), x, 20); cg.setFont("6x8",1); + cg.drawString(meridian, x+2, 0); cg.setFontAlign(0,-1); cg.drawString(locale.date(t),IW/2,IH-8); // draw to screen