From 36762a6e46402e7ff5f410775ef2cc9e1750710a Mon Sep 17 00:00:00 2001 From: Denis Treskunov Date: Sat, 18 Jan 2020 09:50:43 -0800 Subject: [PATCH] add duration until next sunset/sunrise --- modules/default/clock/clock.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/default/clock/clock.js b/modules/default/clock/clock.js index 6022998e..e6ac880b 100644 --- a/modules/default/clock/clock.js +++ b/modules/default/clock/clock.js @@ -161,7 +161,18 @@ Module.register("clock",{ if (this.config.showSunTimes) { const sunTimes = SunCalc.getTimes(now, this.config.lat, this.config.lon); const isVisible = now.isBetween(sunTimes.sunrise, sunTimes.sunset); - sunWrapper.innerHTML = '' + + var nextEvent; + if (now.isBefore(sunTimes.sunrise)) { + nextEvent = sunTimes.sunrise; + } else if (now.isBefore(sunTimes.sunset)) { + nextEvent = sunTimes.sunset; + } else { + const tomorrowSunTimes = SunCalc.getTimes(now.add(1, 'day'), this.config.lat, this.config.lon); + nextEvent = tomorrowSunTimes.sunrise; + } + const untilNextEvent = moment.duration(moment(nextEvent).diff(now)); + const untilNextEventString = untilNextEvent.hours() + 'h ' + untilNextEvent.minutes() + 'm'; + sunWrapper.innerHTML = ' ' + untilNextEventString + '' + '' + formatTime(this.config, sunTimes.sunrise) + '' + '' + formatTime(this.config, sunTimes.sunset) + ''; } @@ -169,7 +180,8 @@ Module.register("clock",{ const moonIllumination = SunCalc.getMoonIllumination(now.toDate()); const moonTimes = SunCalc.getMoonTimes(now, this.config.lat, this.config.lon); const isVisible = now.isBetween(moonTimes.rise, moonTimes.set); - moonWrapper.innerHTML = ' ' + moonIllumination.fraction.toLocaleString(undefined, {style: 'percent'}) + '' + + const illuminatedFractionString = moonIllumination.fraction.toLocaleString(undefined, {style: 'percent'}); + moonWrapper.innerHTML = ' ' + illuminatedFractionString + '' + ' ' + formatTime(this.config, moonTimes.rise) + ''+ ' ' + formatTime(this.config, moonTimes.set) + ''; }