Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Hristo_Penchev avatar Hristo_Penchev 389 Точки

Magic Dates DateTime Parse

Здравейте, работя над задачата MagicDates от последното домашно. Но има някакъв проблем при задаването на първоначалните дати. Интересното е, че в конзолата работи, но в системата за оценяване ми даде exception error.

Присвоявам датите по следния начин:

string startYear = Console.ReadLine();
            string endYear = Console.ReadLine();
            int magicWeight = int.Parse(Console.ReadLine());
            bool isMagicWeight = false;
            DateTime startDate = DateTime.Parse("01/01/" + startYear);
            DateTime endDate = DateTime.Parse("31/12/" + endYear);

Системата ми изписва Unhandled Exception

Впоследствие декларирах датите по друг начи. Директно, не чрез стринг. Но ми е интересно защо първоначалният ми метод не сработи.

Тагове:
0
Programming Basics
VNikolov avatar VNikolov 51 Точки
Best Answer

Хвърля ти FormatException, защото по подразбиране DateTime.Parse() използва en-US Culture и очаква стринг във формат месец/дата/година, а при теб втория път подаваш 31/12, което е невалидна дата. DateTime.Parse() поддържа различни Cultures, но трябва да ги подадеш като параметър. :)

2
Filkolev avatar Filkolev 4482 Точки

Предполагам след това си направил нещо подобно?

int startYear = int.Parse(Console.ReadLine());
int endYear = int.Parse(Console.ReadLine());
int magicWeight = int.Parse(Console.ReadLine());

DateTime startDate = new DateTime(startYear, 1, 1);
DateTime endDate = new DateTime(endYear, 12, 31);

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

0
Hristo_Penchev avatar Hristo_Penchev 389 Точки

Да, по този начин стана, но ми беше интересно защо се прецаква при стринговете.
Благодаря на Николов за обяснението.

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