Професионална програма
Loading...
+ Нов въпрос
Gabble avatar Gabble 2 Точки

13. Holidays Between Two Dates; Broken code, HELP

Здравейте, някой може ли да помогне с откриването на грешките? Намерих единствено, че има оператор && вместо ||. Също така разбрах, че по някаква причина променливата date не се променя при преминаване през цикъла, но не знам защо. Ето го кодът: 

using System;
using System.Globalization;

class HolidaysBetweenTwoDates
{
    static void Main()
    {
        var startDate = DateTime.ParseExact(Console.ReadLine(),
            "dd.m.yyyy", CultureInfo.InvariantCulture);
        var endDate = DateTime.ParseExact(Console.ReadLine(),
            "dd.m.yyyy", CultureInfo.InvariantCulture);
        var holidaysCount = 0;
        for (var date = startDate; date <= endDate; date.AddDays(1))
            if (date.DayOfWeek == DayOfWeek.Saturday &&
                date.DayOfWeek == DayOfWeek.Sunday) holidaysCount++;
        Console.WriteLine(holidaysCount);
    }
}
0
Fundamentals Module
diljana avatar diljana 90 Точки
Best Answer

Здравей,

Форматът  "dd" трябва да се коригира на "d", защото иначе, когато въведеш едноцифрено число ти добавя 0 пред него.

Формата за месеците трябва да е  "М", а не с малка буква(което е минути). 

Във for цикъла трябва да запазиш променената дата date = date.AddDays(1), иначе не запаметява промяната.

Другата грешка ти си я оправил.

 

 

0
Gemino avatar Gemino 18 Точки

Eeee mersi brat!! :D 

0
ElviraPetkovaSvishtov avatar ElviraPetkovaSvishtov 152 Точки

Едната грешка е във форматирането на датата ->  "dd.m.yyyy" - трябва да стане "d.M.yyyy" - едно "d"за да може да приема и едноцифрени и двуцифрени дати, а голямото М-мисля че да може да приема точния месец. Втората грешка е в условието на for цикъла -> където трябва да се инкрементира променливата date, не се записва наново -> "date.AddDays(1)" - трябва да стане "date = date.AddDays(1)". Третата грешка си я видял(а). Четвъртата ако не се лъжа е да се сложат къдравите скоби на if-а, т.е. това "holidaysCount++;" да влезе в къдрави скоби. О, и да се сложат къдрави скоби на for цикъла, че не става ясно къде се принтира.

Мисля че е това. Успех :)

0
JulianJulianov avatar JulianJulianov 4 Точки

Благодаря ви колеги!

0
07/09/2019 20:54:47
Martin2489 avatar Martin2489 2 Точки

друга грешка е че в if-a е сложено && то трябва да се промени на или - ||

0