Другой вариант - использовать мин. И макс. Я не уверен, что это более читабельно в этой ситуации, но в некоторых ситуациях это так.
A = -std::max(diffYear, 0);
B = std::min(diffYear, 0);
(Также обратите внимание, что, как правило, я ожидаю, что переменные будут инициализированы, когда они в исходном коде вы можете инициализировать их 0 и вырезать эти строки из блоков if)