I was talking to someone the other day and told them that I was about to eat dinner. They asked why I was eating dinner so soon. I sighed. I get so sick of this old argument. So, I took the time to look up the definitions of these words and here's the low down on it all.
Lunch - a light meal eaten during the middle of the day. You do not eat "lunch" as your first or last meal of the day. Lunch is only eaten as the second meal of the day - generally eaten around noon.
Dinner - the wrench in the cogs - is a meal that can be eaten either in the middle of the day or at the end of the day. It implies the largest meal of the day, whether eaten in the middle of the day, or in the evening. It also implies a formal meal. You go out for dinner - not supper (although there are "supper clubs"). You have a dinner date - not a supper date. You can however, have a lunch date - just to add confusion to it all. Dinner can be used to substitute for either "lunch" or "supper", depending on whether it's a formal meal or the largest meal of the day.
Supper - the term I use - is the meal eaten at the end of the day. You never eat supper in place of "lunch". It is considered to be a lighter meal than a dinner would be. It is almost always an informal meal. If you have a formal, large meal in the evening, then you are considered to be having dinner. If you're just having leftovers, or something quick and easy like most of us have, you are said to be having supper.
Of course, breakfast is always breakfast, and is called breakfast no matter what time of day you eat it. Breakfast is more about the type of food that you're eating, rather than the time of day, although most people eat breakfast in the morning or as the first meal of the day. Being an ex trucker, I can attest to the fact that many people, especially those who eat in truckstops, have breakfast any time of day.
Hopefully this little piece that I've just written sheds a little light on the usage of these words. When I tell you that I'm getting ready to eat dinner around noon, don't give me any more shit. I know what I'm talking about.