address sunrise/set rounding in last 30 seconds of hour (fixes #146)
This commit is contained in:
parent
444b911e90
commit
423c5ec70e
@ -93,15 +93,12 @@ static void _sunrise_sunset_face_update(movement_settings_t *settings, sunrise_s
|
|||||||
minutes = 60.0 * fmod(rise, 1);
|
minutes = 60.0 * fmod(rise, 1);
|
||||||
seconds = 60.0 * fmod(minutes, 1);
|
seconds = 60.0 * fmod(minutes, 1);
|
||||||
scratch_time.unit.hour = floor(rise);
|
scratch_time.unit.hour = floor(rise);
|
||||||
if (seconds < 30) {
|
if (seconds < 30) scratch_time.unit.minute = floor(minutes);
|
||||||
scratch_time.unit.minute = floor(minutes);
|
else scratch_time.unit.minute = ceil(minutes);
|
||||||
}
|
|
||||||
else {
|
if (scratch_time.unit.minute == 60) {
|
||||||
scratch_time.unit.minute = ceil(minutes);
|
scratch_time.unit.minute = 0;
|
||||||
if (scratch_time.unit.minute == 60) {
|
scratch_time.unit.hour = (scratch_time.unit.hour + 1) % 24;
|
||||||
scratch_time.unit.minute = 0;
|
|
||||||
scratch_time.unit.hour = (scratch_time.unit.hour + 1) % 24;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (date_time.reg < scratch_time.reg) _sunrise_sunset_set_expiration(state, scratch_time);
|
if (date_time.reg < scratch_time.reg) _sunrise_sunset_set_expiration(state, scratch_time);
|
||||||
@ -126,6 +123,11 @@ static void _sunrise_sunset_face_update(movement_settings_t *settings, sunrise_s
|
|||||||
if (seconds < 30) scratch_time.unit.minute = floor(minutes);
|
if (seconds < 30) scratch_time.unit.minute = floor(minutes);
|
||||||
else scratch_time.unit.minute = ceil(minutes);
|
else scratch_time.unit.minute = ceil(minutes);
|
||||||
|
|
||||||
|
if (scratch_time.unit.minute == 60) {
|
||||||
|
scratch_time.unit.minute = 0;
|
||||||
|
scratch_time.unit.hour = (scratch_time.unit.hour + 1) % 24;
|
||||||
|
}
|
||||||
|
|
||||||
if (date_time.reg < scratch_time.reg) _sunrise_sunset_set_expiration(state, scratch_time);
|
if (date_time.reg < scratch_time.reg) _sunrise_sunset_set_expiration(state, scratch_time);
|
||||||
|
|
||||||
if (date_time.reg < scratch_time.reg || show_next_match) {
|
if (date_time.reg < scratch_time.reg || show_next_match) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user