Я предполагаю, что это что-то похожее на схему ISO 8601 для года-недели, где неделя (период с понедельника по воскресенье) приходится на год, в котором содержится четверг.
Здесь месяц содержит неделю, если четверг этой недели приходится на месяц.
Логически число таких недель в месяце совпадает с числом четвергов в этом месяце.
Вы можете получить эту цифру из числа дней месяца в месяце и дня недели первого месяца месяца.
28-дневный месяц всегда содержит ровно 4 четверга. Месяцы с числом дней, превышающим 28, могут содержать 5 четвергов.
Вы можете преобразовать число дней недели в ISO (Mon = 1, Sun = 7) в следующий формат: ((weekday + 2) Мод 7) - 2
пн = 1, вт = 2, ср = 3, чт = 4, пт = -2, сб = -1, вс = 0
Затем добавьте это скорректированное число дней недели в число дней месяца. Если результат превышает 32, то это месяц, содержащий 5 недель.
Таким образом, 31-дневный месяц, начинающийся с понедельника, дает цифру 32 (31 + 1). Содержит 4 недели.
31-дневный месяц, начинающийся во вторник, дает цифру 33 (31 + 2). Он содержит 5 недель.
31-дневный месяц, начинающийся с пятницы, дает цифру 29 (31 + (-2)). Это содержит 4 недели.
Надеюсь, это поможет.