Lets say that a user is entering a ship date and a delivery date for a customer order. The customer wants it delivered on a particular day. The customer has blackout days such as weekends and holidays that they don't accept delivery.
Likewise the shipping warehouse has blackout days.
There is some nominal travel time in days.
The user has the ability to override the blackout days and the travel time. The only restriction is that the delivery date may not be earlier than the ship date.
Oh, and this is a legacy WinForm App, so extra points for using common controls!
Here is what I have in mind:
The user enters a delivery date and the system calculates the ship date based on the nominal travel days. If the ship date lands on a warehouse blackout day, the system subtracts a day and tries again. Repeat until an open shipping day is found.
If the user edits the ship date the delivery date will be recalculated by adding the travel days. If the ship date lands on a blackout day, add a day and keep trying until an open customer receiving day is found.
Allow the user to link or unlink the ship and delivery date to stop the automatic recalc when either one is edited.
If the user overrides the blackout dates or the dates are less than the nominal travel days, warn the user with a warning icon.