When And How To Create Extension, Widget, Helper

Hello everyone.

I want to render a selection(dropdown) of year on a form, since it is common to every web app i want it to be reusable. And in case i want to add selection for months, days or even date (includes year, month, day).

What component will i use, extension, widget or helper? When will i use the other component? or is there an existing one for handling date?

Please help. Thank you