I
There is no problem in choosing between the present perfect and the present simple in English. There exists a difficulty in choosing between the present perfect and the simple past; here is what A Comprehensive Grammar of the English Language (Quirk et al. 1985) has to say.
(4.20)
This kind of difference [between past and present perfect], although by no means invariable, is often summarized in the statement that present perfective signifies 'past time with a current relevance'. The contexts of use (CoGEL) of the present perfect are shown below.
(4.20)
(a) STATE LEADING UP TO THE PRESENT
- That house has been for sale for ages.
- Have you known my sister for long?
(b) INDEFINITE EVENT LEADING TO THE PRESENT
- Have you (ever) been to Florence?
- All our children have had measles.
(c) HABIT (ie reccurrent event) IN A PERIOD LEADING UP TO THE PRESENT
- Mr Terry has sung in this choir ever since he was a boy.
- The province has suffered from disastrous floods throughout its history.
The relevant context is "(a)".
In the case "That house has been for sale for ages." you can change the present perfect into the present only if you do away with any adverbial that has a reference to the past.
The following is correct when talking about the same house because the present takes on a state present value (true in the past, true now and bound to be true for some time to come); that is, you choose to say something somewhat different about the house.
"For a week" fulfills the same role as "for ages". You can use the present about the same situation (then, however, the statement will have to answer to a different question), but as follows, that is, modified so as to contain no reference to the past.
II
You are right in saying that the present simple is used in talking about what happens regularly.
- He is here every Saturday without fail.
However, that is not all; for actions that have to do to with habit, for instance, you do also use that tense.
- The salesman is in this region whenever there are at least ten customers in need of assistance.
Nevertheless, as seen above, the present perfect can also be used for the same purpose, although with a slightly different nuance; whereas the present simple connotes that there is no reason to doubt that the action will continue to obtain in times to come, through the use of the present perfect you make no such claim, that is to say, the action leads up to the present, and no more is to be inferred.
which means when you say "I know Jack for 20 years", technically what you're saying is you're repeating the action of knowing Jack for 20 years regularly; 2 years ago it would also be repeating the action of knowing Jack for 20 years.
The fact that you use a reference to the past keeps you from using the present. If you use the state present, as is the case in "I know Jack" (true for some time, true now, and bound to be true for some time to come), you can't say also "for twenty years". The fact that you use the present does not automatically put the use of that tense in a particular context since there are several; so, that the situation should be "habit", as you suppose, is not necessarily right, and it makes no sense here because of the particular elements used.
III Further explanations due to a comment
(I like how you said, "the present takes on a state present value (true in the past, true now and bound to be true for some time to come"), but isn't "20 years" a present value by that logic, too? It was true in the past (it's been 20 years since January, and it's still 20 years as of today), it is certainly true now, and it is bound to be true for some time to come, the value will still be "20 years" for the next 9 months. Thus, "I know Jack for 20 years" makes sense? –
Leroy)
(1) First of all, the verb "to know" is not an action verb (I forgot to mention that, sorry): it is a stative verb. Secondly, the term "present value" that you use is not clear, the more so as you say that a noun phrase ("twenty years") is a "present value"; the state present is a value of the present, the historical present is another, the instantaneous present yet another; it is quasi-impossible to know what you mean, so that you are going to have to brush up on those concepts and try to formulate your ideas so as as to know better the concepts you are using, and as well the words you use for them.
(2) Let's use an action verb, for instance in the example "I play the fiddle for twenty years."; this is not normal English, you have to say "I have played the fiddle for twenty years."; the fact that the use of that tense means that the action leads to the present does not mean that you suppose anything for the future: "I have eaten cabbage for some time, but today I must quit forever." is a usual sentence but "I eat cabbage, but today I must quit forever." is not as usual, speakers might hesitate before saying that, and say instead "I eat cabbage, normally, but today I must quit forever." (understated: something abnormal makes this impossible today (allergy, for instance)); the adverb adds a restriction to the usual implications of the state present and thereby makes it possible. The question is not different in the case of stative verbs. "I know Jack for twenty years." cannot make sense on the basis of considering that a state present is used.
The way you think is as follows; you confuse the fact that the state expressed by the verb (knowing), and effective over the time span (twenty years), with the fact that the truth of this state having been effective for twenty years is now established (because twenty years went by). The person knew twenty years ago and kept on knowing during all those years that went by. The verb that bears on the period you define implicitly (some time back in January, till now, and for some time to come) is "to be" used in a sentence like "There are now twenty years of my knowing Jack.". It was so in January, it is so now and it will be so for some time to come, but the fact that the person has known Jack was true twenty years back, and that is what "I have known…", or the erroneous, "I know" is meant to say. In fact, you interpret "I know for twenty years." as "There are twenty years of my knowing.", and make the subordinate idea the main idea using in doing so the tense proper for the former. You are perhaps also confused by sentences such as "I know Jack since twenty years ago.", in which the state present is used, and which express the same thing; such sentences are not really acceptable according to CoGEL.
(4.5) Note [bl Sentences such as * We live near Toronto since 1949, in which the simple present is combined
with an adverbial of duration, do not normally occur. This is because the adverbial is interpreted
as defining a period of 'living' leading up to the present moment, and hence as referring to time before the present. Therefore, even though the state referred to may well continue in the future, the present perfective rather than the present is used. Particularly in AmE, however, this requirement is sometimes relaxed, and sentences like Since when do you read newspapers? are quite often heard.