QUOTE
<?php
function egn_gen() {
$year = mt_rand(1, 99);
if(strlen($year) == 1) { $year = 0 . $year; }
$month = mt_rand(1, 12);
if(strlen($month) == 1) { $month = 0 . $month; }
$day = mt_rand(1,31);
if(strlen($day) == 1) { $day = 0 . $day; }
$digits = mt_rand(100, 999);
$yc = $year[0] * 2 + $year[1] * 4;
//1 poziciq //2 poziciq
$mc = $month[0] * 8 + $month[1] * 5;
//3 poziciq //4 poziciq
$dc = $day[0] * 10 + $day[1] * 9;
//5 poziciq //6 poziciq
$d3c = $digits[0] * 7 + $digits[1] * 3 + $digits[2] * 6;
//7 poziciq //8 poziciq //9 poziciq
$l = (($yc + $mc + $dc + $d3c) % 11);
if($l < 10) {
$control = $l;
}
else {
$control = 0;
}
$egn = $year.$month.$day.$digits.$control;
return $egn;
}
?>
function egn_gen() {
$year = mt_rand(1, 99);
if(strlen($year) == 1) { $year = 0 . $year; }
$month = mt_rand(1, 12);
if(strlen($month) == 1) { $month = 0 . $month; }
$day = mt_rand(1,31);
if(strlen($day) == 1) { $day = 0 . $day; }
$digits = mt_rand(100, 999);
$yc = $year[0] * 2 + $year[1] * 4;
//1 poziciq //2 poziciq
$mc = $month[0] * 8 + $month[1] * 5;
//3 poziciq //4 poziciq
$dc = $day[0] * 10 + $day[1] * 9;
//5 poziciq //6 poziciq
$d3c = $digits[0] * 7 + $digits[1] * 3 + $digits[2] * 6;
//7 poziciq //8 poziciq //9 poziciq
$l = (($yc + $mc + $dc + $d3c) % 11);
if($l < 10) {
$control = $l;
}
else {
$control = 0;
}
$egn = $year.$month.$day.$digits.$control;
return $egn;
}
?>
Tova mi e koda. Vodq se po http://www.grao.bg/esgraon.html#section2
Postoqnno kontrolnata suma izliza greshna. Predpolagam 4e "Проверка на датата:
Проверяват се денят, месецът и годината за валидна дата. За родените преди 01.01.1900 г. към месеца се прибавя числото 20. За родените след 31.12.1999 г. към месеца се прибавя числото 40." na tazi proverka se 4upi gorniq kod. Makar 4e koda kakto se vijda generira godini meju 1900-1999 toest nqma nujda ot pribawqne na dopylnitelni 4isla. Vsqkakwi idei sa dobre do6li
