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