If I hadn't left her, it would be our 7th anniversary tomorrow.

If I hadn't left her, It would have been our 7th anniversary tomorrow.

Are both the above sentences grammatically correct? Do they mean the same? What's the difference in their meaning?

  • 1
    I'd use have been only if the thing is over. So, if it's tomorrow, I'd use would be...
    – Maulik V
    Jun 1, 2016 at 6:45

3 Answers 3


It's true that "it would be / would have been our 7th anniversary tomorrow" is about the future, and many speakers, particularly strict teachers and non-native speakers, would think that "If I hadn't left her, it would have been our 7th anniversary tomorrow." sounds wrong or even ungrammatical because it's "tomorrow" and tomorrow hasn't come yet.

However, this appears to be acceptable and I think it happens often enough that we shouldn't consider it ungrammatical. Practical English Usage by Michael Swan addresses this in 259.3:

259 if (4): unreal past situations
3 present use: situations that are no longer possible

We sometimes use structures with would have ... to talk about present and future situations which are no longer possible because of the way things have turned out.
    It would have been nice to go to Australia this winter, but there's no way we can do it. (OR It would be nice ...)
    If my mother hadn't knocked my father off his bicycle thirty years ago, I wouldn't have been here now. (OR ... I wouldn't be here now.)

To put it simply, both of your alternatives should be equally acceptable. Just keep in mind that on exams (or in exams, if you prefer in to on), it's probably safer to use it would be our 7th anniversary tomorrow.

  • A crystal clear explanation. One more gap in grammar has been filled.
    – Victor B.
    Jun 1, 2016 at 12:20
  • Consider ordinary English sentences: I was going to have lunch with him tomorrow, but I got sick. She was to become famous the next year. Marty said that he wanted to become president. A good teacher or text should make it clear that a past tense form does not always mean we are talking about the past. I wouldn't proscribe this usage on a formal test, it is formal English. Jun 1, 2016 at 12:40
  • -1 The sentence you are talking about is the model way to construct the so-called third conditional. This answer explains the use of tomorrow, but the OP is not asking about the use of tomorrow, but about the difference between a mixed conditional and the third conditional. The use of tomorrow in the third conditional poses no problem to native speakers, as past tense forms are often used to refer to future time. This is how English works. Jun 2, 2016 at 17:58
  • 1
    @AlanCarmack It turns out, the book is not that different from other books. On page 256 (I missed this the first time because your link doesn't jump right to that page), it states: "In this type [counterfactual conditional, aka the 3rd conditional] the even or state is presented as counter to the reality: it didn't happen." Note the word "didn't". (It's not "doesn't", or "won't".) This is a typical explanation of the 3rd conditional in grammar books for learners. Jun 2, 2016 at 19:15
  • 1
    @AlanCarmack BTW, I don't use these 0, 1, 2, 3, or mixed conditionals myself, but thanks anyway. Personally, these conditionals are the first thing I'd advise a learner to abandon as soon as possible if they asked for my advice. :-) Jun 2, 2016 at 19:17

Both the hypothetical, counterfactual sentences are correct grammatically, with a little difference in meaning.

The first tense is a mixture of conditional type II and conditional type III. The if-clause refers to the condition in the past, whereas the main clause refers to the result in the future. In simple words, as said by Khan, it implies that I really left her. So it won't be our 7th anniversary tomorrow.

On the other hand, the second sentence is conditional type III, in which we talk about the situation both in the if-clause and the main clause in the past. Because of the use of 'tomorrow' in the main clause, 'would have' refers to the future from the point of view of the past. This sentence in actuality means that I left her. So we didn't have our 7th anniversary the next day.

The use of these sentences depends on the time frame you have in your mind in regard to the anniversay. If you want to refer to the happening of the anniversary in the future, you should use would be. On the other hand, if you want to refer to the happening of the event in the future from the point of view of the past, you should use would have been.


Yes, both sentences are grammatically correct.

They both mean that the speaker really did leave "her" in the past, but if the contrary were true, the speaker and "her" (ie she) would be celebrating their 7th anniversary on the day after the speaker utters this sentence (which day is tomorrow).

Notice, first, that this is a past unreal condition. Different folks call it different things; you call it a third conditional; the textbook English Grammar: A University Course (3rd edition) calls it a "counterfactual conditional clause"). Click on Page 265 of that link.

As for which version (would be or would have been) should be the better option to go with, it really depends on what you want to say. Note that page 266 of the same textbook says

The counterfactual construction [would/should/could + have + past participle of full verb]...can occur in other discourse contexts such as expressing regret or reproof at something that didn't take place.

and gives the example

It would have been a pleasure to meet your son. (but we didn't meet him)

This same sense of expressing regret or lament over something that didn't take place is one reason you might choose would have been in your sentence. If you did not want to express this, you should choose would be.

As for the word tomorrow in the main clause of a past unreal conditional, it's working the same way as in

If we had had the opportunity, it would have been a pleasure to meet your son tomorrow when we were all in Phoenix tomorrow, but I doubt I'll be over the plague by tomorrow and will need to stay in my room tomorrow. Thus my being sick prevents such a meeting tomorrow.

The whole (conditional) sentence is written about the future–from the point of the past. We often do this in English, as in

I was going to meet your son tomorrow, but I got sick


Tomorrow was going to be our 7th anniversary, but I left her.

  • 1
    You need to point out that hadn't've is a recent innovation (a new "subjunctive" suffix, -da, negative -dna) which has become common in colloquial English but is still entirely unacceptable in formal English. Jun 1, 2016 at 11:00
  • You may ignore the bit about a 'new subjunctive suffix', but the fact stands that If I had not have left is not Standard English. Jun 1, 2016 at 11:08
  • 1
    Quite so; indeed, I myself use this very often in speech. But it will be rejected in most academic contexts; and I think we owe it to our learners (many of whom are pursuing or hope to pursue advanced degrees in Anglophone universities) to make them aware of these differences in register. Jun 1, 2016 at 11:52
  • 1
    @Rompey Which point? Jun 1, 2016 at 12:24
  • 1
    @AlanCarmack: Thanks again -- this time for the link to the site, so far unknown to me. You've been most helpful, really.
    – Victor B.
    Jun 2, 2016 at 20:22

You must log in to answer this question.

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