The age calculation used when announcing a user's birthday appears to have an off-by-one error, leading the age to be displayed as one less than the actual age.
The birthday next command produces incorrect output.
The cause is that when sorting birthdays, their original years are used, which leads to them being sorted according to years first, then months, then days.
The intended behaviour is for birthdays to be sorted according to months and days only.
A possible fix would be to map() the birthdays to dates with the current year and UTC timezone before sorting them, though this would result in the allocation of another Vec<DateTime<Utc>>.