Now thats a question I’ve pondered from time to time…
The answer is rather boring. The military needed a way to refer to a generic day for an operation to start, for operational security and practical reasons a date could not be given (the date might change). So the day an operation was to start was simply referred to as D-Day, the D standing for Day.
The day before an operation started referred to D-1, or the day after D+1.
In the same vein when planners were referring to the hour an operation was due to begin it was referred to as H-Hour, the H being hour. Again an hour after the operation started was referred to as H+1, two hours after kick off was H+2 etc.
What I didn’t know was that D-Day the Normandy landings was so ubiquitously known as D-Day that landings after that, were at times, given different letters. The landings on Okinawa were L-Day, the planned landings Japan were going to be X-Day and Y-Day.