Should have is mainly used to give advice for past events. This is hypothetical. What an ideal action was in the past. Something that wasn’t done.
should have gone to bed earlier to run a race. The first example I gave was this: imagine that my wife is running a big race tomorrow morning. I say: you should go to bed early tonight. But in the morning, she comes downstairs and looks exhausted. She stayed up late and watched TV. I say to her: you should have gone to bed earlier. You shouldn’t have watched TV so late.
Here are more examples:
“You should have gone to bed earlier.”
“I shouldn’t have said that.”
“I shouldn’t have drunk so much.”
“He should have scored there.”
“I shouldn’t have bought that jacket.”
Use could have to talk about possibilities if something had been different in the past.
For example, someone who didn’t go to college can say:
“If I had gone to college, I could have gotten a better job.”
When talking about a gymnast who didn’t win a competition, you can say:
“She could have won the gold medal if she hadn’t fallen three times.”
Could have is often used with “if + had + past participle” (If I had gone / if she hadn’t fallen) – these “if” phrases express the imaginary past situation. However, in some cases you can use could have without the “if” phrase. Imagine you’re driving with a person who makes a dangerous maneuver on the road. You can say:
“Are you crazy? We could have gotten into an accident.”
Would have is a bit more difficult because it has two common structures. The first is with but. I would have A, but I had to B. Use this structure to show that you wanted to do something in the past, but you could not.
“I would have called, but there was no phone service.”
“I would have loaned you the money, but I didn’t have any.”
Would have also forms the result clause of a past unreal conditional. For example:
“If I had known they were vegetarians, I would have made a salad.:
“You can always reverse conditional sentences. If would have comes first, there is no comma.:
“I would have made a salad if I had known they were vegetarians.”