I need to be able to input a date into a data entry field. I would like a calendar icon by the side of the data entry field so that I can click on it to display the calendar. The calendar of course is scrollable from month to month and year to year forward and backward. I can find this in the standard calendar control in MFC.
The additions I need are:
I want to be able to specify what days of the week are holidays. For instance, in most countries of the world Saturdays and Sundays are the weekly holidays but it might be Thursdays and Sundays in the Middle East and Fridays and Sundays in certain other locations. I want to be able to specify weekends (if it may be called that) by specifying the days of the week that are holidays and this will need to be displayed in red.
I would also like to be able to specify the annual holidays in a separate file. These vary from country to country and the calendar will display the holidays also in red.
A date may be selected from the displayed calendar . In this case, the user selects a non-red day. If the user chooses not to use the calendar but types in the date, the input date is compared against the calendar to ensure that the date doesn't fall on a holiday. If it does, a message indicating that the date is invalid pops up. There is an override button available and if the user pushes that, the date is accepted despite being a holiday or weekend.
In summary, the calendar has a couple of additional parameters. One is a country associated with the calendar, the other is the weekend days. So, as I insert the calendar icon in my GUI, I am prompted for the country. The country file ([url removed, login to view] or [url removed, login to view] or whatever you choose to name it) lists the annual holidays for 2 years into the future. A separate file holds the weekly holidays (Sat, Sun or Thu, Sun) but we may not need one of this for each country because the variations are few. The availability of the override button is also a choice I make when I choose the calendar icon; I may or may not choose to make the override available. If you want to get real fancy, you can even specify if the week starts on a Sunday or Monday (so that the normal US weekend gets bunched up at the tail end)
The detailed design of these files I leave to the programmer.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) A simple test program that demonstrates that the functionality required is indeed available.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).
Win98, Win2000, WinME, Windows NT, Win XP platforms (or wherever Visual C++ and MFC work).