not sure if you’ll be comfortable with my answer but based on the information given in your question, you may like to explore sticking to 2 date pickers only (one for the from date and the other for the to date). Then build in an accelerator which will allow the system to produce the respective report depending on the length of time selection.
For instance, if the user picks a time frame of one year on the date pickers, an annual report is generated automatically. And if the user picks a time frame of one week on the same date pickers, the output changes to a weekly report.
By doing so the interface will be very clean it will only have 2 date pickers like the system in the image below.
However, there will be 2 concerns when adopting this approach. Firstly, you need to provide ample user feedback so that users know which reports are being triggered. Secondly, this approach removes constraints on date selection so you can expect more errors if the feedback is not adequately designed.
If what you are asking is that users would have an option to "quick pick" the dates available, then you can consider using a combination of 2 date pickers plus a filter for the design. Copying the design from Google Calendar, you can use this. Plus a combination of 2 date pickers for custom date range.