From 603c6d4d7dca1ed9123286535c3ad3a596e9ad01 Mon Sep 17 00:00:00 2001 From: Klaus-Peter Bernschneider Date: Tue, 15 Mar 2022 08:25:21 +0100 Subject: [PATCH] Add files via upload --- apps/daysleft.json | 9 +++++ apps/metadata.json | 13 ++++++++ apps/widdaysl.wid.js | 78 +++++++++++++++++++++++++++++++++++++++++++ apps/widget.png | Bin 0 -> 1043 bytes 4 files changed, 100 insertions(+) create mode 100644 apps/daysleft.json create mode 100644 apps/metadata.json create mode 100644 apps/widdaysl.wid.js create mode 100644 apps/widget.png diff --git a/apps/daysleft.json b/apps/daysleft.json new file mode 100644 index 000000000..c2349db0b --- /dev/null +++ b/apps/daysleft.json @@ -0,0 +1,9 @@ +[ + { "day": 25, "month": 2, "year": 2022 }, // Urlaub Essen + { "day": 2, "month": 3, "year": 2022 }, // Aschermittwoch + { "day": 27, "month": 3, "year": 2022 }, // Sommerzeit + { "day": 16, "month": 4, "year": 2022 }, // Ostersamstag + { "day": 3, "month": 6, "year": 2022 }, // Kalamata + { "day": 17, "month": 7, "year": 2022 }, // Exerzitien + { "day": 31, "month":12, "year": 2022 } // Sylvester +] \ No newline at end of file diff --git a/apps/metadata.json b/apps/metadata.json new file mode 100644 index 000000000..b3cff5eb8 --- /dev/null +++ b/apps/metadata.json @@ -0,0 +1,13 @@ +{ + "id": "widdaysleft", + "name": "Days Left", + "version": "0.01", + "description": "Read daysleft.json and show number of days left until first date, which lies in the future", + "icon": "widget.png", + "type": "widget", + "tags": "widget,tools", + "supports": ["BANGLEJS2"], + "storage": [ + {"name":"widdaysleft.wid.js","url":"widget.js"} + ] +} diff --git a/apps/widdaysl.wid.js b/apps/widdaysl.wid.js new file mode 100644 index 000000000..0fc0e24b2 --- /dev/null +++ b/apps/widdaysl.wid.js @@ -0,0 +1,78 @@ +const storage = require('Storage'); +let settings; +let height = 23; +let width = 34; + +var debug = 0; //1 = show debug info + +settings = storage.readJSON('daysleft.json',1); //read storage +if (!settings) print("no daysleft.json found"); +var i = 0; +const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds +const today = new Date(); //includes current time +const currentYear = today.getFullYear(); +const currentMonth = today.getMonth(); +const currentDay = today.getDate(); +const todayMorning = new Date (currentYear, currentMonth, currentDay, 0, 0, 0); //create date object with today, but 00:00:00 +do { + var target = settings[i]; + if (target) { + var dd = target.day, + mm = target.month-1, //-1 because month is zero-based + yy = target.year; + const targetDate = new Date(yy, mm, dd); //is 00:00 + i += 1; + } +} while (target && todayMorning >= targetDate); + +const diffDays = (target ? (targetDate - todayMorning) / oneDay : 0); //calculate day difference + +function drawWidget() { + if (debug == 1) g.drawRect(this.x,this.y,this.x+width,this.y+height); //draw rectangle around widget area + g.reset(); + + //define font size and string position + //small if number has more than 3 digits (positive number) + if (diffDays >= 1000) { + g.setFont("6x8", 1); + g.drawString(diffDays,this.x+10,this.y+7); + } + //large if number has 3 digits (positive number) + if (diffDays <= 999 && diffDays >= 100) { + g.setFont("6x8", 2); + g.drawString(diffDays,this.x,this.y+4); + } + //large if number has 2 digits (positive number) + if (diffDays <= 99 && diffDays >= 10) { + g.setFont("6x8", 2); + g.drawString(diffDays,this.x+6,this.y+4); + } + //large if number has 1 digit (positive number) + if (diffDays <= 9 && diffDays >= 0) { + g.setFont("6x8", 2); + g.drawString(diffDays,this.x+13,this.y+4); + } + //large if number has 1 digit (negative number) + if (diffDays <= -1 && diffDays >= -9) { + g.setFont("6x8", 2); + g.drawString(diffDays,this.x+5,this.y+4); + } + //large if number has 2 digits (negative number) + if (diffDays <= -10 && diffDays >= -99) { + g.setFont("6x8", 2); + g.drawString(diffDays,this.x,this.y+4); + } + //large if number has 3 digits or more (negative number) + if (diffDays <= -100) { + g.setFont("6x8", 1); + g.drawString(diffDays,this.x,this.y+7); + } +} + +//draw widget +WIDGETS["widdaysl"]={area:"tl",width:width,draw:drawWidget}; + +setTimeout(function() { + Bangle.loadWidgets(); + WIDGETS["widdaysl"].draw(WIDGETS["widdaysl"]); + }, todayMorning + oneDay - today + 1000); // update at next noon \ No newline at end of file diff --git a/apps/widget.png b/apps/widget.png new file mode 100644 index 0000000000000000000000000000000000000000..70aa664e4951e9ad02b3840004e0edbb42aa0274 GIT binary patch literal 1043 zcmV+u1nm2XP)z#5?V?Eh00b*1C7%MvebBLgk__$G(3?!Vn;(l&?N_;PJ24OUI%z zu!N6+F2E^-7*f$FmyVJFz`5$UTT!DdI$ExVowL#}7wP%foJAdnsNXUFoPpmW$Pn9G1YM;w5l{%@%R3xH5sjf>T3 zHVYQL3TX}pr_UP%bxB|WKD}UIbC}Mys_2+nUTam6NlDB*m!1Ne!@-93E`+7HDyZnp zoUms#=3GW|AuNKrPA7Gp&itLLprg8x-7(zt223a1$kn*w&RSUxZntISd)HT>W?;Rk z8CY+M-pE#nF2)(2nByn6A73~|Q-elZOFjGdY~iVg+p(_kULz&AJz>T#-(te$XXv$k zs%fYh2t<}Rb@~#%@KQP!ipB^YUo&#i%O~fi%aZhJlne+VcyMbA07v(C zv3FbQII1W3(d7f+iYJm`Af8O72DDn}aMUw~?*lhOe>3v)bqraZ_ra1Y@XjlJ7*cZGx5(hI zn`<|9MknX#*xbm|k93wJ$2BQS1*}5Q-P*{({*H8P@=CBA(s?Pm0`WwWm);v^Wrm!3 zv6r1)sh=1jJ(lj5yi=!;O|!7e*^Fy848VtHT@3WK5nW6$HZ`B_*SowoR2roz^zz{z znwHo3P&CHb?`Ao7@dgPawOQ?QHgjZO<>x;rKE&Ovjl6rjpWz7)lYa#9hhx~R0%vO@ zk3G=JKz}=0k-u3~seKc#H@OT%s+vV%+%^lE8<31vG!-S}*Je>u16E<26i}U=s4)DR zVSCf8!PLOO_IkIG)E*M>IS{UBYHJe)`I%;DeNWyeJnNW8jT$v7#XpmfZd3Da;PC(e N002ovPDHLkV1n(i@o@kE literal 0 HcmV?d00001