No question is too old to answer, and there's no stigma against giving a good answer even if it's to your own question!
As counter-intuitive as it may seem, the Stack Exchange isn't really about giving answers to the people who ask questions; its primary goal is to collect good answers to the future users who have the same question.
This means questions never get "too old" to revisit, and it means that if the asker is the one who finally found a good answer that's just as awesome as if anyone else found it. We even encourage people to self-answer questions they hadn't asked yet!
Now, some details:
If the existing answer is mostly the same as the one you'd make, but you have more details that'd be useful to add, you might consider leaving a comment or editing the original rather than adding your own new answer.
If you use the "Answer Your Question" button at the bottom of your own question's page, the answer will get added to the list like all the others. You can choose to remove the "accepted" checkmark from the previous answer and give it to your own if you think that's accurate--but you don't have to, it's totally your call.
If you move the checkmark to your own answer, the original answerer will lose the 15 rep from having an answer accepted--but you won't get 15 rep because it's your own post you're accepting and that'd just be weird. The original answerer will not lose any vote-based reputation, and you'll get vote-based rep on your own answer as usual.