I don't fully understand the question. You have them lettered as if there is supposed to be a correct answer, but no context or directions to base a decision on. So, I will just comment on each.
a. Might be ok in British English, but I never use this in American English.
b. I use this one 90% of the time. This is because the afternoon is not finished YET, or because it is STILL afternoon. (Study the capitalized words)
c. Never use this one
d. The grammar is fine, but it doesn't make sense. If one doesn't eat their lunch, what do they do with it? Instead of "Do", change it to "Did" and this makes more sense. You can use this in the afternoon and in the evening of the same day that you ate lunch. For morning, you can use it if it refers to lunch eaten yesterday or another day in the past.