събота, 10 август 2013 г.

Calculating Workdays

Тъй като следващата седмица заминавам за море и трудно ще отделям време за писане на код, предвидливо реших да си напиша домашното за класове и обекти в академията на Телерик цяла седмица преди крайния срок. Разглеждайки задачите прецених, че ще е полезно за всички да си имат програмка, която брои оставащите работни дни до определена дата вместо тях. Условието е следното: 

5. Write a method that calculates the number of workdays between today and given date, passed as parameter. Consider that workdays are all days from Monday to Friday except a fixed list of public holidays specified preliminary as array.



Алгоритъмът е прост: В даден масив (лист) въвеждаме дните, които са почивни (както ни е зададено по условие). Направих този масив статичен, както и датата today, която е винаги днешната дата, така че да мога да ги използвам свободно в другите методи. Създадох друг метод, който връща булев резултат и в него правя проверка дали съответния ден присъства в листа с почивните дни. Методът ClaclulatingWorkDays е най-важният в програмата, защото там правя същинската проверка дали денят е почивен (събота, неделя, празник). В един while цикъл проверявам всеки ден от днешния до последния дали е различен от събота, от неделя и дали не присъства в листа с почивни дни. Едва когато отговаря на дадените условия, денят се счита за работен и увеличавам с 1 моят брояч за работните дни. След проверката добавям един ден към текущия, за да можем да обходим всички дни от сегашния до въведения от потребителя. Този метод е void, не връща резултат, затова директно в него отпечатвам съобщение, което показва колко са оставащите работни дни. Работата на Main метода е да подтикне потребителя да въведе дата, да я parse-не към подходящ формат и да извика метода ClaclulatingWorkDays. 



Няма коментари:

Публикуване на коментар