Loading...
TheodoraDimitrova avatar TheodoraDimitrova 0 Точки

09. Holidays Between Two Dates

Някой били обяснил подробно как се решава тази задача ?Аз поправих някакви неща но дори дебъгера ми не тръгва.

using System;
using System.Globalization;

class HolidaysBetweenTwoDates
{
    static void Main()
    {
        DateTime startDate = DateTime.ParseExact(Console.ReadLine(),
            "dd.MM.yyyy", CultureInfo.InvariantCulture);
        DateTime endDate = DateTime.ParseExact(Console.ReadLine(),
            "dd.MM.yyyy", CultureInfo.InvariantCulture);
        int holidaysCount = 0;
        for (DateTime date = startDate; date <= endDate; date.AddDays(1))
            if (date.DayOfWeek == DayOfWeek.Saturday ||
                date.DayOfWeek == DayOfWeek.Sunday) holidaysCount++;
        Console.WriteLine(holidaysCount);
    }
}

 

Тагове:
0
Fundamentals Module 29/09/2016 16:31:42
Vladix avatar Vladix 75 Точки
Best Answer

Здравей,

Тази задачка има 4 грешки.

1. Стринг формата който даваш на метода ParseExact - твоя "dd" -> деня от месеца, като ако е едноцифрено число като го падва с 0 (01 - 31), а условието изисква (1 -31) т.е => "d"

2. Отново в ParseExact метода формата за месеци ти е "ММ" т.е месеците от 01 - 12 (пак ако е едноцифрено число го падва с нула), а от нас изискват 1 - 12 или => "М"

3. В ъпдейта на for цикъла .АddDays връща нов DateTime, трябва да е: date = date.AddDays(1);

4. В if statement - a проверяваш дали е или събота или неделя(ти това си го оправил)

Дано съм помогнал 

Поздрави

 

4
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Сигурен ли си, че се изисква месеците да са двуцифрени, защото в условието пише : "given in format day.month.year (e.g. between 1.05.2015 and 15.05.2015 there are 5 non-working days – Saturday and Sunday).".

0
Vladix avatar Vladix 75 Точки

Оставям си кода тук. На мен това ми дава 100/100, не знам при вас как е.

Поздрави

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Да, явно не пречи да напишеш и "01", след като е форматирано само с"М".

0
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

Какво значи "дебъгера ми не тръгва"? Би ли обяснил подробно какво се случва?

Да не би да не ти приема датите като вход? Ако е така, трябва да си оправиш регионалните настройки или да ползвваш запетая вместо точна, например.

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

И аз имам проблем с тази задача. Всички неща по-горе съм ги оправил, но след това като натисна ctrl+f10 или се опитвам да пусна дебъгера ми изписва "Visual Studio cannot start debugging because the debug target is missing" и ми подчертава "CultureInfo."  - doesnt exist in the current context. Иначе задачата изглежда лесна.

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

имах предвид ctrl+f5

0
ZornitsaSerbezova avatar ZornitsaSerbezova 455 Точки

Сигурен ли си, че имаш using System.Globalization;? VS2015 ли ползваш?

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