Софтуерно Инженерство
Loading...
+ Нов въпрос
tihomirpetrov79 avatar tihomirpetrov79 0 Точки

задача 10. Days Sum - проблем

Здравейте, опитах се да реша задачата с малко четене в различни сайтове как да ползвам метода DateTime.
При мен, след като написах кода всичко си се смята коректно, а в judge гърми и дава 0/100.

Моля за съвет.
Ето линк към кода :

https://pastebin.com/bPwHubj2

и линк към условието на задачата:
https://softuni.bg/trainings/resources/officedocument/33496/exercise-problem-descriptions-programming-basics-with-csharp-june-2018

*Пресмятане с дати: Сума от дни

 

Тагове:
TeodorStefanovPld avatar TeodorStefanovPld 1286 Точки

я по-добре седни я напиши наново веднъж parse-ваш дните обаче input1 input2 никъде не ги ползваш после пак ги parse-ваш след това  tostring() след това отново към int.. за цикъла са ти казали че започва от 1 ти го почваш от 0. Само тамо имаш едно завъртане повече. И ти искат разликата между 2те дати а ти събираш нещо от тях въобще станало e манджа с грозде.

 

https://pastebin.com/UWTBjJM3 eто го кратко и простичко 100/100 сигурно можех да измисля как да взема нечетните стойности и четните без цикъл но ме домързя и мача почна.

0
10/07/2018 21:12:01
tihomirpetrov79 avatar tihomirpetrov79 0 Точки

Манджата с грозде ок, но поне да каже, че има грешен код, а то ми дава:

Unhandled Exception: System.FormatException: String was not recognized as a valid DateTime.
   at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   at P10.DaysSum.Program.Main()
0
TeodorStefanovPld avatar TeodorStefanovPld 1286 Точки

https://pastebin.com/UWTBjJM3 а имаш проблем с parse-ването  ето ти го решено :Д не слагаш никъде culture.invariantculture и не знае къде и как да ти parse-не деня на пс-то ти ти ползва локалните но Judge не ползва тях.А свиквай по-нататък и това няма да ти показва  а само грешен тест примерно това е част от нещата. А тази грешка е добра показва ти точно какво става и защо.

0
10/07/2018 21:20:19
NikolayNeykov92 avatar NikolayNeykov92 618 Точки

Здравей,

за решаването на тази задача трябва да ползваш метода ParseExact .

Третия параметър в конструктора му трябва да е CultureInfo.InvariantCulture и съответно

към using-ите трябва да си добавиш using System.Globalization;

Останалата част от задачата е добавянето на дните към датите (.AddDays()) и сумирането им накрая.

Ето едно примерно решение на задачата:

https://pastebin.com/tayudd45

0
10/07/2018 21:25:01
tihomirpetrov79 avatar tihomirpetrov79 0 Точки
Оказа се, че съм чел датите директно като стринг.Вече всичко работи.
Благодаря ви, за решенията, но исках аз да стигна до моето ;)
namespace P10.DaysSum
{
    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    class Program
    {
        public static void Main()
        {
            int n = int.Parse(Console.ReadLine());
            string format2 = "dd";
            
            DateTime date1 = DateTime.ParseExact(Console.ReadLine(), "dd-MM-yyyy"CultureInfo.InvariantCulture);
            DateTime date2 = DateTime.ParseExact(Console.ReadLine(), "dd-MM-yyyy"CultureInfo.InvariantCulture);
                        
            int counter1 = 0;
            int counter2 = 0;
 
 
            for (int i = 1; i <= n; i++)
            {
                if (i % 2 == 0)
                {
                    counter1++;
                }
                else if (i % 2 != 0)
                {
                    counter2++;
                }
            }
            string addDay1 = date1.AddDays(counter1).ToString(format2);
            string addDay2 = date2.AddDays(counter2).ToString(format2);
 
            int d1 = int.Parse(addDay1);
            int d2 = int.Parse(addDay2);
                       
            Console.WriteLine(d1+d2);
        }
    }
}
0
10/07/2018 22:19:57