Is it wrong to use "have cooked" instead of "cooked" here?
Great question. This is really a question about when to use "present simple" and when to use "present perfect" tense. Present perfect more often indicates having a history or having done something before. It does not indicate any specific time frame in which it was done. Ex: I've eaten steak. Ex: I've been to Paris. Simple past sounds more natural here because it implies a relation to the action that was completed. Also as he mentions time "every year" we know it has to be simple past, because you can't specify the time with present perfect. The simple past can be used with expressions that show a definite, particular time in the past. So you cannot say "I've cooked you one lasagna for every year old you are." Ex: Yesterday, I ate steak. Ex: I went to Paris last year.
Get more Native English Expressions >