Programming-Basics-Book-CSharp-BG

Обхождане на всички дати

За обхождането ще се възползваме от функционалността, която ни дава DateTime класът в C#. Ще си дефинираме променлива за началната дата, което можем да направим, използвайки конструктора, който приема година, месец и ден. Знаем, че годината е началната година, която сме прочели от конзолата, а месеца и деня трябва да са съответно януари и 1-ви. При C# “конструкторът” на DateTime приема като първи аргумент годината, като втори аргумент месеца и като трети аргумент деня от месеца:

След като имаме началната дата, искаме да направим цикъл, който се изпълнява, докато не превишим крайната година (или докато не преминем 31 декември в крайната година, ако сравняваме целите дати), като на всяка стъпка увеличава с по 1 ден.

За да увеличаваме с 1 ден при всяко завъртане, ще използваме метод от DateTime - .AddDays(…), чрез който ще добавяме по един ден към текущата дата. Методът ще се грижи вместо нас кога трябва да прескочи в следващия месец, колко дни има даден месец и всичко около високосните години.

Внимание: тъй като методът .AddDays(…) връща “новата” дата, е важно да имаме присвояване на резултата, а не само извикване на метода!

В крайна сметка нашият цикъл може да изглежда по следния начин:

Забележка: може да постигнем същия резултат с for цикъл, инициализацията на датата отива в първата част на for, условието се запазва, а стъпката е увеличаването с 1 ден.