Please help me to understand the difference between have not and did not.

Scenario: we are all sitting in my manager's cabin.

Manager: Show me your ID card. (Asked to my team member)
I'm on behalf of my team member
I: Sorry sir, he did not bring his ID card today.

or should I say

I: Sorry Sir. He has not brought his ID card today.

3 Answers 3


There is a difference in using 'did not' and 'have not'.

Let me give you a few examples and then try to explain the usage

did not :

Case 1

  • I did not have time - no time at all
  • I did not have lunch - it just means the speaker did not have lunch

Case 2

  • I did not see Joe - it means the speaker did not see Joe
  • I did not go to Paris - I guess you get the meaning

have not:

Case 1

  • I have not had time - no time till now, but may have some time later on
  • I have not had lunch - means the speaker has never had lunch or he may have lunch later

Case 2

  • I have not seen Joe - can mean the speaker has not seen Joe around or has never seen Joe
  • I have not been to Paris - the speaker has not visited Paris till now

Those were general examples under similar contexts.

Lets try using 'did not' and 'have not' in the same sentence (there may be grammatical errors if I do this) just for explanation sake.

  • I did not play the game yesterday - did not
  • I have not played the game yesterday - sounds strange; trust me it is wrong
  • I have not played the game before - right usage; before - is the timeline here and before includes the speakers entire past


  • He did not bring his ID card today. - correct usage
  • He has not brought his ID card today - wrong usage
  • He has not brought his ID card - acceptable; but it is up to the manager to decide if it is today or forever

I guess the above examples illustrate how the meaning can change depending on the usage of 'did not' and 'have not'.

Something I want you to notice in those sentences is the time frame/period, when ever you tend to use 'did not' it is used in sentences where there is a clear indication to the time of event like today, yesterday or the present like now.

You can always do some more research over the internet for more clarifications.

Please Note: have and has, both can be used to show possession, 'have' works in the first and second person while 'has' works in the third person, so the grammar explained using 'have' can be applied to 'has' as well.

  • 3
    "He has not brought his ID card today" is actually fine. The unspecified time you mention is the time the action was performed. "I did not bring it today" implies the time of leaving the house without it. "I have not brought it today" does not refer to the specific time of acting (in this case, not acting) of the past, but to the consequence in the present. It's the same way we can say "I have eaten today" (present consequence: don't need to eat), but not "I have eaten at 9 am today" (specified time in the past). Native speakers often use present perfect construction to sound more formal.
    – nxx
    Mar 5, 2014 at 22:32

Think about the positive version of the same question. Remember that "did not bring" is the negative version of the simple past tense: "brought". And "has brought" is the present perfect.

  • He brought his card today
  • He has brought his card today

Since it's just one day, the simple past is correct. And it sounds more natural. "He did not bring his card today."

Where do you use "has"? For past and unspecified time, or past and continuing till now. "He has brought his card for weeks straight". "He has never brought his card since he started working here".


Both are okay as they mean the same - at present, he does not have ID card as the card is at his home/residence/wherever. He simply forgot it. However, did not bring would suggest that the event happened in past and not recently whereas, if you say has not brought will give a flair of something that has happened recently or at least has its effect till now.

In this particular case, today does not sound as natural with did not bring as with has not brought. That's again because has not brought is present perfect and shows a recent activity.

Since your boss is asking it now, has not brought fits better. Did not is preferred in case wherein it's an end of the day and you are telling your colleague - Do you know? Jack did not bring his ID card today and thus suffered a lot.

  • Using 'today ' in the sentence makes all the difference, 'did not' is used with specific times like within the hour, now, today etc. 'have not' is used in cases where the time period is ambiguous, so the mention of 'today' actually makes using'did not' sensible.
    Mar 5, 2014 at 13:57

You must log in to answer this question.

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