To talk about how long something has lasted the rule is to use the present perfect tense. “Mr. Dingle speaks French for years,” is thus grammatically incorrect.
The present perfect takes the auxiliary have/has. It is used with the participle of the verb. “Mr. Dingle has spoken French for years,” therefore, follows the rule.
The present perfect joins the past with the present. Perhaps the action has finished but its results are important now. Take, “Mr. Webster’s baby has disappeared,” for example. The exact moment that the action happened is irrelevant, but its consequences are important now . The exact time when the action finished is not indicated in the present perfect. The adverbs: yesterday, last night, 2 days ago, refer to finished times and therefore, cannot be used in the present perfect.
Generally, we use the present perfect to speak about an action that continues to the present time. Since refers to the time when it began, whereas, for indicates the period of time that it has lasted. Expressions such as ” since May” and “for six months” illustrate this point. So far, up to now, until today are others that go with the present perfect.
Words such as already, yet, ever, recently, do not indicate the specific time of the action. They mean any time until this moment and this is why they are appropriate for the present perfect.
Expressions such as “several times this week,” or “most afternoons,” refer to actions that have been repeated up to the present. They do not refer to any one particular time and so they are used with the present perfect.
REFERENCE: How English Works; A Grammar Practice Book; by Michael Swan & Catherine Walter; Oxford University Press; 1997.