Commit 07f544b7 authored by devrtz's avatar devrtz

gcal-date-time-utils: Fix week start

In locales where the first weekday is a monday, the previous code
had a off by one error determining the week a sunday is in.
The problem ultimately arose because in the
`gcal_date_time_get_start_of_week()` function the variable
`n_days_after_week_start` would become negative (-1 in this case) making
the following `g_date_time_add_days (date, -n_days_after_week_start)`
add 1 day resulting in `start_of_week` being set to the start of the
following week.

The solution was to make sure `n_days_after_week_start` would be
positive by adding 7 to it. The variable is taken modulo 7 hence this
should not introduce any bugs.

Fixes #583
parent 4b1e3034
Pipeline #188636 passed with stages
in 6 minutes and 57 seconds
......@@ -84,7 +84,7 @@ gcal_date_time_get_start_of_week (GDateTime *date)
first_weekday = get_first_weekday ();
weekday = g_date_time_get_day_of_week (date) % 7;
n_days_after_week_start = (weekday - first_weekday) % 7;
n_days_after_week_start = (7 + weekday - first_weekday) % 7;
start_of_week = g_date_time_add_days (date, -n_days_after_week_start);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment