Loading...
NMishev avatar NMishev 2 Точки

15. Пресмятане с дати: 1000 дни на Земята - help me

Здравейте,

имам проблем с тази задача.. Judge-а ми дава 20/100 на следното решение:

 

            DateTime date = DateTime.Parse(Console.ReadLine());

            date = date.AddDays(999);
                    
            Console.WriteLine("{0:00}-{1:00}-{2}", date.Day, date.Month, date.Year);

 

Във Visual Studio всичко е ок, но не дава точки... help help help 
                     
 

1
Programming Basics 02/03/2016 21:07:13
Filkolev avatar Filkolev 4482 Точки

ОК, при теб минава, а в джъджа не. Какво казва джъджа? Грешни отговори или друг тип грешка?

Видя ли нулевите тестове в детайлите? Там има ли грешки или всичко минава?

Боравиш с дати, което значи, че винаги има риск културните настройки на машината ти да водят до проблеми също както и с реалните числа. Подозирам, че в това е проблемът, понеже не обработваш по никакъв специален начин датата, а е вероятно да ти се подава във формат, който не е разпознаваем от джъдж спрямо неговите културни настройки. В този случай трябва да виждаш Грешка по време на изпълнение за повечето тестове.

0
NMishev avatar NMishev 2 Точки

Ами общо взето повечето са Runtime error и само на едно място има incorrect answer .. може и да е от настройките на лаптопа ми да.. може ли едно примерно решение на задачата с ParseExact и ToString ? 

0
Filkolev avatar Filkolev 4482 Точки

Имаш два варианта, за които се сещам:

1) кажи на програмата си, че работи с български дати (пробвах преди малко и работи, един ред добавка е)

2) ползвай ParseExact() като подадеш точния формат, в който ти се подават датите

Аз решение лесно ще ти дам, но според мен би било по-полезно сам да прочетеш за метода и след около половин час да речем да намериш решението. В MSDN има доста информация, а ако тя ти е объркваща насочи се към примерите и опитай да ги модифицираш спрямо твоите нужди.

1
NMishev avatar NMishev 2 Точки

Ок, благодаря ти, ще го мъча още! :)

0
gadjov avatar gadjov 115 Точки

Здравей, и аз доста се помъчих над тази задача, първо пробвах с convert. ToDateTime  след като съм въвел string от конзолата, което сигурно е глупост, уви съм начинаещ. По този начин в конзолата ги изкарваше точно,  но съдията даде само 20/100. С грешка :

String was not recognized as a valid DateTime.

След това много внимателно прочетох условието, потърсих и наистина не беше толкова трудно и наистина се решава с Date. ParseExact(). Успех, ако се затрудняваш пиши за повече информация, но наистина както е казал колегата много по-добре е, когато сам я решиш за да я разбереш, а кефа е няма такъв!

1
NikolaLazarov avatar NikolaLazarov 0 Точки

И аз по абсулютно по този начин съм го направил! Пробвайте!

0
rossco82 avatar rossco82 2 Точки

Колегата gadjov е прав, трябва внимателно да се прочете условието.

Разковничето е, че входа за рождения ден ти е "string".

Успех!

0
aaaivaylo avatar aaaivaylo 16 Точки

Прикачвам ти моето решение, направил съм я максимално опростена и разбираема, показва 100/100. Ако има нещо неясно ми пиши отдолу. :)

http://pastebin.com/Z9P7qECv

 

едит: трябва да си добавиш най-горе using System.Globalization, за да може да ти заработи кода правилно. На теб ти го подчертава, защото си пропуснал да добавиш именно това.

1
26/03/2016 20:14:31
borislav9212 avatar borislav9212 745 Точки

Ето още едно просто решение http://pastebin.com/fEjMJtGq

1
DimitarRadoslavov avatar DimitarRadoslavov 1 Точки

На мен ми изписва грешка с твоя код. Къде може да е проблема? Ето и какво ми изписва.Unhandled Exception: System.FormatException: String was not recognized as a valid DateTime.
   at System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
   at System.DateTime.ParseExact(String s, String format, IFormatProvider provider)
   at Basics___1._1.Program.Main() in D:\C#DifficultExams\02.SimpleCalculations\13. 1000 Days After Birth\13. 1000 Days After Birth.cs:line 18
Press any key to continue . . .

0
rossco82 avatar rossco82 2 Точки

Ето то го и моя новобрански код:ю

 

            string birthDay = (Console.ReadLine());
            DateTime convertBirthDay = DateTime.ParseExact(birthDay, "dd-MM-yyyy", null);
         
            DateTime after1000 = convertBirthDay.AddDays(999);
            string dateFormat = "dd-MM-yyyy";
            string strDate = after1000.ToString(dateFormat);
                        
            Console.WriteLine(strDate);

1
Ralitsa88 avatar Ralitsa88 3 Точки

Ето и моето решение :)

http://pastebin.com/zZMEcZGX

1
volen_trend avatar volen_trend 1 Точки

Ей много благодаря за помощта, кода ти много ми помогна. Малко го преработихи и го съкратих, ето и моето решение:

            string myDate = Console.ReadLine();


            DateTime answer = DateTime.ParseExact(myDate, "dd-MM-yyyy", null);
                                   
            Console.WriteLine(answer.AddDays(999).ToString("dd-MM-yyyy"));

0
Bullsized avatar Bullsized 153 Точки

ето още едно примерно решенийце

 

Като цяло искам да ти кажа да не се притесняваш на този етап за DateTime променливата, тъй като в Programming Fundamentals ще се наблегне повече на нея и тогава ще ти стане ясно аджеба за какво става на въпрос. Дори като цяло си мисля, че тази задача е малко затормозяваща за бейсикс курса, още повече, че няма да има подобни на изпита.

А специално ако си любопитен за DateTime можеш да прочетеш още неща на dotnetpearls, има доста примери, който ще ти помогнат да я разбереш.

0
melik avatar melik 285 Точки

Пич ти виждаш ли, че тази тема е от 2016г ? smiley

-1
Bullsized avatar Bullsized 153 Точки

Да ми кажеш "пич" при положение, че мога да съм ти баща - някакси не върви на добрия тон. Освен това след пич има запетая, защото е обръщение, колкото и неправилно използвано, но ще го учиш това по български език съвсем скоро.

Другото - забелязваш ли, че последния пост в нея е от 20/09/2017, демек темата е все още активна? Два дена преди моя пост?

Поздрави,
Иван

0
melik avatar melik 285 Точки

Мда, моя грешка. Извинявам се.

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