fixted bug where time was only ever set to sunrise or sunset [result of integer(long) division was either 0 or 1]

This commit is contained in:
Hunter Richardson
2024-08-02 11:55:20 -04:00
parent 23b64653a8
commit 6fb3745d64

View File

@@ -161,15 +161,17 @@ public final class RealTimeWeather extends JavaPlugin {
sunsetMinutes += 720; sunsetMinutes += 720;
LocalTime currentTime = LocalTime.of(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE)); LocalTime currentTime = LocalTime.of(cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE));
int currentMinutes = currentTime.getHour() * 60 + currentTime.getMinute(); double currentMinutes = currentTime.getHour() * 60 + currentTime.getMinute();
if (currentMinutes >= sunriseMinutes && currentMinutes < sunsetMinutes) { if (currentMinutes >= sunriseMinutes && currentMinutes < sunsetMinutes) {
return ((currentMinutes - sunriseMinutes) / (sunsetMinutes - sunriseMinutes) * 13569) + 23041; double daytimeFraction=(currentMinutes - sunriseMinutes) / (sunsetMinutes - sunriseMinutes);
return (long) (daytimeFraction * 13569) + 23041;
} else { } else {
if (currentMinutes < sunriseMinutes) if (currentMinutes < sunriseMinutes)
currentMinutes += 1440; currentMinutes += 1440;
return ((currentMinutes - sunsetMinutes) / (1440 - sunsetMinutes + sunriseMinutes) * 13569) + 12610; double nighttimeFraction=(currentMinutes - sunsetMinutes) / (1440 - sunsetMinutes + sunriseMinutes);
return (long)(nighttimeFraction * 13569) + 12610;
} }
} }