Is it ok to use the present perfect with a definite time if it's used with may or could ?

Examples :

  • I may have drunk too much yesterday night
  • I could have done it last month but I was too lazy for that.

If yes what are the other exceptions ?

2 Answers 2


These sentences are both entirely acceptable. However, neither contains a present perfect: in both the have + PastParticiple is not a 'true' perfect construction but a 'past marker' required by the peculiarities of modal verbs.

This is tricky. Let's start with a modal 'true' present perfect:

A. John may have finished the report already.

This may be paraphrased as "It is possible that John has finished the report already". Both clauses occupy the same timeframe, the present: may makes a present possibility evaluation of a proposition (John has finished the report, the report is complete) representing a present state arising out of the past eventuality—which is exactly what the present perfect expresses.

B. I may have drunk too much yesterday night.

This will not bear the same sort of paraphrase as A ("It is possible that I have drunk too much last night")—not only because it is ungrammatical (a present perfect will not marry with a temporal expression which does not include the present) but also because there is a contrast of timeframes: may makes a present possibility evaluation of a proposition about the past: (I drank too much last night). The pseudo-perfect construction have drunk is brought in to express the temporal contrast, to mark DRINK explicitly as past-tensed.

C. I could have done it last month but I was too lazy for that.

In this case, the past-tense form of can is employed to express contrafactuality. If this sentence were cast in the present tense, could would be used by itself:

C1. I could do it now, but I am too lazy for that.

You can backshift this into the past tense by replacing am with was. But what do you do with could? You've already so to speak "used up" the past-tense form to express contrafactuality; so to mark this clause as past-tensed you have to bring in outside help: again, the pseudo-perfect have done is a 'past marker'.


The Present Perfect is used with "can", "may", "must", etc. to indicate a past ability, probability, likelihood.


He must have heard me last night - today he spoke about it.
We may have been too hasty last Tuesday in letting the dogs out.
What can he have done last spring to deserve his dismissal?

  • So these 3 verbs are the only exceptions ?
    – Vadi
    Aug 23, 2015 at 0:11
  • I don't consider them exceptions. How else would you form a past likelihood statement? In Present you say "you must be hungry". How do you say it about yesterday night? Here is the form: "you must have been hungry yesterday night." And not only those three. You found 'could'; add to those 'should', 'would'... Probably others. (I'm too lazy to look for those on the web for you, sorry) Aug 23, 2015 at 0:16
  • It can't be present perfect: the HAVE component, which in a perfect bears the tense, is an infinitive here and has no tense. Aug 23, 2015 at 0:29
  • Yes, certainly. Looks like one, don't it though? Aug 23, 2015 at 0:32
  • 1
    :-) If you know it's not correct, then why would you do it? Aug 23, 2015 at 0:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .