Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 06:52 29.09.24 
Компютри и Интернет
   >> Delphi
*Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Тъп въпрос !нови  
Автор Mave_rick (Toma6)
Публикувано29.05.03 01:50



Някой да знае, как се проверява валидност на ЛНЧ или БУЛСТАТ ?



Тема Re: Тъп въпрос !нови [re: Mave_rick]  
Автор PhantomASМодератор (няма)
Публикувано29.05.03 08:16



виж



Ама ако ползваш данъчния номер - този алгоритъм който съм публикувал - май има някакъв проблем- само за някои номера - което е много странно.

---
Е т'ва е живот!

Тема Re: Тъп въпрос !нови [re: PhantomAS]  
Автор Mave_rick (Toma6)
Публикувано06.06.03 01:09



Мерси :)
Това с БУЛСТАТ върви (поне на мен така ми се струва).
Ама не намерих нищо из интернет за ЛНЧ(ЕНЧ).



Тема Re: Тъп въпрос !нови [re: Mave_rick]  
Автор NejDet ()
Публикувано11.06.03 10:16




unit EGNCheck;

interface
const EGN_Mod_11_Coef : array[1..9] of byte = (2,4,8,5,10,9,7,3,6);

type EGNString = string[10];
{Проверява ЕГН}
function CheckEGN(EGN : EGNString) : boolean;
{}
function CheckEGN_Mod11(EGN : EGNString) : boolean;
{}
function CheckEGN_Date(EGN : EGNString) : boolean;

{Взема дата от ЕГН}
function GetDateFromEGN(EGN : EGNString) : TDateTime;

{Проверява дали годината е високосна}
function LeapYear(Year : word) : boolean;

{Образува ЕГН от подадена дата, като последните 4 символа са нули}
function DateToEGNwith0(Date : TDateTime): string;

implementation

uses SysUtils;

function DateToEGNwith0(Date : TDateTime): string;
var Y,M,D : word;
S : string[10];
begin
DecodeDate(Date,Y,M,D);
if (Y >=1800) and (Y<=1899) then
M := M + 20;
if (Y >=1900) and (Y<=1999) then M := M + 0;
if (Y >=2000) then M := M + 40;
Result := Copy(IntToStr(Y),3,2);

S := IntToStr(M);
if Length(S) = 1 then S := '0' + S;
Result := Result + S;

S := IntToStr(D);
if Length(S) = 1 then S := '0' + S;
Result := Result + S + '0000';
end;

function GetDateFromEGN(EGN : EGNString) : TDateTime;
var Y,M,D : word;
begin
Y := StrToInt(Copy(EGN,1,2));
M := StrToInt(Copy(EGN,3,2));
D := StrToInt(Copy(EGN,5,2));
if M > 20 then
begin
if M > 40 then begin
M := M - 40;
Y := Y + 2000;
end
else begin
M := M - 20;
Y := Y + 1800;
end
end
else Y := Y + 1900;

try
Result := EncodeDate(Y,M,D);
except
on EConvertError do
begin
Result := 0;
end;
end;

end;

function LeapYear(Year : word) : boolean;
begin
if (Year mod 4 <> 0) then
Result := False
else if (Year mod 100 <> 0) then
Result := true
else if (Year mod 400 <> 0) then
Result := False
else Result := True;

end;

function CheckEGN_Date(EGN : EGNString) : boolean;
var Y,M,D : word;
begin
Y := StrToInt(Copy(EGN,1,2));
M := StrToInt(Copy(EGN,3,2));
D := StrToInt(Copy(EGN,5,2));
if M > 20 then
begin
if M > 40 then begin
M := M - 40;
Y := Y + 2000;
end
else begin
M := M - 20;
Y := Y + 1800;
end
end
else Y := Y + 1900;

Result := True;
try
EncodeDate(Y,M,D);
except
on EConvertError do
begin
Result := False;
end;
end;
end;

function CheckEGN_Mod11(EGN : EGNString) : boolean;
var i,M : integer;
begin
if EGN[0] < #10 then
begin
Result := False;
exit;
end;
M := 0;
for i := 1 to 9 do
begin
M := M + StrToInt(EGN)*EGN_Mod_11_Coef;
end;
M := (M mod 11) mod 10;
Result := StrToInt(EGN[10]) = M;
end;


function CheckEGN(EGN : EGNString) : boolean;
begin
Result := CheckEGN_Mod11(EGN) and CheckEGN_Date(EGN);
end;

end.


Никога не е късно човек да се провали!

Тема Re: Тъп въпрос !нови [re: NejDet]  
Автор Hateras (чакащ)
Публикувано11.06.03 10:25



това е за ЕГН, и изглежда правилно... обаче дали и за ЛНЧ е така?
из разните правителствени ситове пише: "
...ЛНЧ се формира по начин указан от министерския съвет..."
който начин по никой начин неможах да намеря...

--------------------------------------
Започва Път от моят праг...


Тема ЛНЧ - ЕГНнови [re: Hateras]  
Автор NejDet ()
Публикувано11.06.03 12:07



Мисля, че ЛНЧ е аналог на ЕГН но на чужденци.

Мога да питам но сага нямам време

Никога не е късно човек да се провали!


Тема Re: ЛНЧ - ЕГНнови [re: NejDet]  
Автор Mave_rick (Toma6)
Публикувано15.06.03 00:04



Не е едно и също.
В ЛНЧ няма дати на райдане и др.
За моито номера с контролната сума става, ама пробвах още едно и се оказа, че не става (или ЛНЧ-то е объркано).



Тема Re: ЛНЧ - ЕГНнови [re: Mave_rick]  
Автор PhantomASМодератор (няма)
Публикувано15.06.03 09:27



Уточнение ЛНЧ = ЕГН за български граждани, за чуждите е друго - естествено е да не можеш да го провериш с този алгоритъм. Това е според моите скромни познания - не съм чул за промяна все още - но ако трябва ще проверя. Според новите изисквания на НОИ - ЛНЧ за чужденците се попълва дата месец и година на раждане + пол! За нашите ЕГН -та няма нужда от това.

---
Е т'ва е живот!


Тема Re: ЛНЧ - ЕГНнови [re: Mave_rick]  
Автор NejDet ()
Публикувано16.06.03 09:12



Адреса на

дава подробна информация за ЕГН-то. Но никъде не можах да намеря как се формира ЛНЧ освен в ЗАКОН ЗА БЪЛГАРСКИТЕ ДОКУМЕНТИ ЗА САМОЛИЧНОСТ.

Раздел III
Данни в българските документи за самоличност
Чл.16. (1) Българските документи за самоличност съдържат следните задължителни лични данни:
1. имена;
2. дата на раждане;
3. единен граждански номер (или личен номер за чужденец);
4. пол;
5. гражданство.
(2) Наименованието на данните по ал.1 се изписват на български и английски език.
(3) (нова,ДВ,бр.67 от 1999 г.) Личният номер за чужденец (ЛНЧ) идентифицира еднозначно дългосрочно пребиваващите чужденци в Република България. Начинът на неговото формиране се определя от Министерския съвет.

Никъде официално не е публикуван начина за това формиране.

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

Никога не е късно човек да се провали!

Тема Решениенови [re: Mave_rick]  
Автор NejDet ()
Публикувано16.06.03 12:09



ЛНЧ.
За ЛНЧ (n1n2n3n4n5n6n7n8n9n10)
(n1*21+n2*19+n3*17+n4*13+n5*11+n6*9+n7*7+n8*3+n9*1) MOD 10 =n10

т.е. теглата са 21,19,17,13,11,9,7,3,1

Същото е както ЕГН но теглата са други и се дели на 10 а не на 11.

БУЛСТАТ
има инфо

"Структура на ЕИК"

Никога не е късно човек да се провали!


Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.