2006Michael Swan says in entry 495 of his PRACTICAL ENGLISH USAGE that we must not say
'Granny has hit me!' but 'Granny hit me!' And he doesn't explain why, nor does he give any context. I feel confused. Why can't we say 'Granny has hit me'?
You can say "Granny has hit me.' For example, if someone asks you 'When your were a child and did something very bad, did your parents or grandparents ever hit you?', you can say 'Granny has hit me.' But you also can just say 'Granny hit me.'
What is the context of the sentence 'Granny hit me!'?
In the following example, I would only use 'Granny hit me.'
A child came into the room crying and you asked him what happened. He could say 'Granny hit me.'
It would be very odd to say 'Granny has hit me.' in that circumstance.
(A Hungarian teacher followed my post, and doesn't know the reason either.)