Loading...
nick.genov avatar nick.genov 104 Точки

Домашно за методи - задача 10. DateModifier

Здравейте.

Някой успя ли да получи 100 точки на задача 10 - DateModifier от домашното за методи?

https://judge.softuni.bg/Contests/222/Methods

Решението ми получава 57 точки, а виждам, че и доста други колеги са получили толкова. Пробвах два варианта за изчисляване на разликата - с TimeSpan и с изваждане на датите. Не виждам какво може да се обърка.

Това е решението ми:

http://pastebin.com/PCgQ7w0g


Идеи?

Тагове:
0
C# OOP Basics
jicata avatar jicata Trainer 7 Точки

Здрасти.

10та задача е малко по-специална от другите поради факта, че се върти около DateTime. Датите и времето като цяло са малко проблематични концепции не само в програмирането и е много лесно да се получат разминавания. Сигурно сте забелязали, че първия zero test не минава съвсем, докато пък втория минава без засечка. Причините за това са редица като на пример разминаването на в календарите които се ползват. Дифолтния календар в .NET  е вързан към дифолтната култура и изглежда това резултира в ползване на Грегорианския което съотвено създава проблеми при пресмятане на дати които са преди въвеждането на Грегорианския а и дори след това. Като цяло е манджа с грозде що опре до дати. За повече инфо може да зачетете ето този пост от блога на Jon Skeet относно аритметика свързана с дати

Иначе конкретно за задачката, тестовете са проблема, не решенията ви. Мислехме да ги оправим още като видяхме проблема но така и не го направихме тогава, което е наша грешка. Вече тестовете са оправени (т.е датите които ползваме са по-близки една до друга и същеременно до днешната) и всичко трябва да е ОК.

TL;DR

DateTime е пипкава работа. Решенията ви не са грешни. Тестовете бяха объркани, вече са оправени. Ретест за 100/100.

 

Cheers

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