Need a birthday workflow send email wish to users on any day of the week.
You could use a webpart as an interface on a page, but like Ajeet said, you need a trigger, and for that a timer job is best suited.
You could use the timer job to update a list everyday with the latest birthdays (perhaps upcoming birthdays for the next 4/5 days), reading it from User Profile or DB. Your webpart can then read this list and render a nice-looking “Happy Birthday” message.