Loading...

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

brusesv avatar brusesv 5 Точки

Java - задача за сравняване на ЕГН

задача за Java :Съставете програма,която сравнява две ЕГН-та и извежда съобщение кой от притежателите им е по-млад.

въпрос:Как да подходим? Разглеждаме двете ЕГН-та като две променливи от тип double и използваме оператор за сравнение като извеждаме по-малкото число ли ??? или има определен термин на английски за ЕГН и някакъв определен оператор ???

идеи ?

Тагове:
0
Programming Basics 11/11/2015 20:35:35
Filkolev avatar Filkolev 4482 Точки

Всяко ЕГН съдържа рождената дата да притежателя му. От ЕГН-то трябва да извадиш датата и да сравниш с датата на другото ЕГН. 

Примерно ако съм роден на 5-ти ноември 1990 ЕГН-то ми ще бъде 901105хххх. Интересуват те първите 6 цифри, от които може да извлечеш датата. Трябва да вземеш предвид и че ЕГН-тата на родените след 2000-та започват по друг начин. не е нужно самите ЕГН-та да ги преобразуваш, може да ги разглеждаш като стрингове.

След като имаш данните за година, месец и ден може да сравняваш ръчно или да парснеш двете дати и да ги сравниш директно.

1
InaPanova avatar InaPanova 28 Точки

Аз имам следният проблем - При въвеждане на ЕГН да се изписва на конзолата на колко години е човекът в момента. Кодът ми върви само при изтегляне на годините на първите два елемента със substring (0,2), но когато вкарам и месеци в условието, които извличам със substring(3,1) -  гърми. Иначе използвам елементарни if конструкции. 

1
Filkolev avatar Filkolev 4482 Точки

InaPanova, виж с дебъгера хубаво какво взимаш като събстринг. Според мен не отрязваш каквото трябва.

Разгледай хубаво как работи Substring() метода, той иска начален индекс и (в случая при C#) дължина. Индексите започват от 0, т.е. за да вземеш първите два символа ти трябва събстринг от 0 с дължина 2 (взимаш символите на позиции 0 и 1), което си направила, но впоследствие за да вземеш следващите два символа трябва да започнеш от индекс 2 (което е третият символ) и отново да вземеш дължина 2 - така взимаш символите на индекси 2 и 3. Аналогично може да вземеш и дните, след което задачата се свежда до няколко проверки спрямо текущата дата.

0
angelnb avatar angelnb 24 Точки

Според мен, можеш да разглеждаш двете ЕГН-та като стрингове и от там с regex или по индекс да вземеш елементите, които ти трябват. 

Примерно:

string egn = "9405130398";

В C# можеш да вземеш годината със метода Substring.

int year = int.Parse(eng.Substring(0, 2));

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

 

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