may / might have done表示對已經發(fā)生過的情況的肯定推測,語氣稍弱。might have done還可表示“本可能做某事而實際上沒有做”。如:
She didn''t come on time. She may / might have missed the bus.
He might have given you more help, but he was very busy then.
should / ought to have done表示“本該做某事而實際上沒有做”,其否定形式表示“本不該做某事而實際上做了”,通常含有責備的意思。如:
The flowers have died. I should / ought to have watered them often.
You shouldn''t / ought not to have told them the truth.