Loading...
mihayloff14 avatar mihayloff14 824 Точки

Може да провериш тестовете и да разбереш точно какъв е проблема

В страницата за C# Basics Март има всички варианти на минали изпити. Изтегли съответния вариант и виж тестовете за задачата, която те интересува.

1
IliyanKordev avatar IliyanKordev 50 Точки

видях и пак нямам идея къде е грешката ползвах дебъгера и пак на разбрах

0
crazy7 avatar crazy7 177 Точки

Грешката ти е че когато проверяваш месеците в:

if ((!DateTime.IsLeapYear(year) && mount == 2 && day > 28)||

                        ( DateTime.IsLeapYear(year) && mount == 2 && day > 29)||
                        (day == 31 && (mount==4 && mount == 6 && mount == 9 && mount == 11)))
 
Трябва да е:

if ((!DateTime.IsLeapYear(year) && mount == 2 && day > 28)||

                        ( DateTime.IsLeapYear(year) && mount == 2 && day > 29)||
                        (day == 31 && (mount==4 || mount == 6 || mount == 9 ||mount == 11)))
 
Защото трябва да е един от тези месеци не всичките едновременно.
От там по време на теста подаваш към DateTime несъществуваща дата и гърми.
3
IliyanKordev avatar IliyanKordev 50 Точки

Да, прав си много благодаря

0
crazy7 avatar crazy7 177 Точки

Няма проблем радвам се, че съм успял да ти помогна.

0
nikola.m.nikolov avatar nikola.m.nikolov 830 Точки

Вместо да използваш for цикли за генериране на датите и if проверката за съответните месеци е по-лесно да си генерираш начална и крайна дата от тип Datetime ddmmyyyy още при подаването на входните данни. Така и така винаги началната дата започва от 1 Януари, само годината не е известна, а крайната дата е 31 Декември, пак с неизвестна година.

При четене на входа използвам:

DateTime startDate = new DateTime(int.Parse(Console.ReadLine()), 01, 01);
DateTime endDate = new DateTime(int.Parse(Console.ReadLine()), 12, 31);

Завъртам while цикъл за проверка дали сме достигнали крайната дата:

while (startDate <= endDate) 

В края на while цикъла увеличавам датата с 1 ден чрез:

startDate = startDate.AddDays(1);

Това е кодът ми: MagicDates

4
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.