Софтуерно Инженерство
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 21 Точки

Сигурен ли си, че се изисква месеците да са двуцифрени, защото в условието пише : "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 21 Точки

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

0
ZornitsaSerbezova avatar ZornitsaSerbezova 454 Точки

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

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

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

И аз имам проблем с тази задача. Всички неща по-горе съм ги оправил, но след това като натисна 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 21 Точки

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

0
ZornitsaSerbezova avatar ZornitsaSerbezova 454 Точки

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

0