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
TheodoraDimitrova avatar TheodoraDimitrova 0 Точки

Благодаря за обяснението , оправих кода и най- важното разбрах  какво правя и защо.Поздрави

0
TheodoraDimitrova avatar TheodoraDimitrova 0 Точки

http://pastebin.com/hbxmZcJd 

ГОТОВО

0
davichonov365 avatar davichonov365 127 Точки

Тука в тази задача е важно сама да стигнеш до отговорите !!! 

0
ZGirtsova avatar ZGirtsova 2 Точки

Здравей, може ли да ми обясниш защо месеците са изписани с главно "'M". При мен кода изглеждаше по същият начин, но месеците ми бяха с малко 'm' и при въведена дата 16.07.2017 отчита 16.01.2017 - 6 месеца назад, като смених буквите се оправи, но не разбирам защо се получава така.

 

Много благодаря!

0
spzvtbg avatar spzvtbg 581 Точки

поне в c# -

MM == month,

mm == minutes

а от това колко са на брои зависи колко цифри приемат и предават 

M =>  1, 2, 3...

MM => 01, 02, 03...

MMM => Jan, Feb, Mar

MMMM => January, February, March ......

еквивалентно е за всички съкращения относно датата 

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

0
16/07/2017 21:09:14
Jordan471 avatar Jordan471 1 Точки

Благодаря! :)

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