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) + ''; }