Знаки препинания расставлены верно. Также вместо тире можно поставить двоеточие.
Эти варианты равнозначны, можно использовать любой из них.
Запятая нужна: Не знаешь, что подарить?
Оба варианта верны.
Возможны оба варианта: года и годы.
Запятая нужна: Не знаешь, что подарить?