Well it includes the few things you wanted:
Start and end dates (DOB and Today())
Ability to show: Year Month and Day
It should also be very accurate (which is a main problem as you mentioned when doing this sort of query.
I'm sure there are sites out there that will supply code you need, just keep looking and trying different things... i'm sure you will get there at some point.
Best regards.
Rixxe