Got a table of birthdays.

Need to retrieve all birthdays from today to 21 days in the future.

Using this query:

SELECT * from birthdays
where(DAYOFYEAR(curdate()) <= dayofyear(birthday)
AND DAYOFYEAR(curdate()) +21 >= dayofyear(birthday) OR DAYOFYEAR(curdate())
<= dayofyear(birthday)+365 AND DAYOFYEAR(curdate()) +21 >= dayofyear(birthday)+365);

However it returns birthdays from yersday as well.
If I change the second line from <= to just = it works as expected with my test data but it their a better way to do it?