Commit 18e31d5f authored by devrtz's avatar devrtz Committed by Georges Basile Stavracas Neto

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


(cherry picked from commit 07f544b7)
parent ec23a9ae
Pipeline #188637 passed with stage
in 5 minutes and 32 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