PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Isikukoodi tükeldamisel vanus, kuupäev, aasta ja kuu.
Postitaja: Starter 2013-04-21 13:08:54
Tere !
Oleks vaja luua klass ning sinna sisse funktsioon, mis tükeldab isikukoodi tükkideks.Seejärel arvutab vanuse ning väljundiks on ka kuupäev, aasta ja kuu.

Tänud ette ! :)
RE: Isikukoodi tükeldamisel vanus, kuupäev, aasta ja kuu.
Postitaja: siim kallas ($10e6) 2013-04-21 14:27:18
TSITEERITUD:
Tere !
Oleks vaja luua klass ning sinna sisse funktsioon, mis tükeldab isikukoodi tükkideks.Seejärel arvutab vanuse ning väljundiks on ka kuupäev, aasta ja kuu.

Tänud ette ! :)
50 euro eest teen ära, see on ju puhas töö

kui sul on miski php alane küsimus, proovi uuesti siia miskit postitada
RE: Isikukoodi tükeldamisel vanus, kuupäev, aasta ja kuu.
Postitaja: jeesus eestist 2013-04-21 16:16:32
TSITEERITUD:
Tere !
Oleks vaja luua klass ning sinna sisse funktsioon, mis tükeldab isikukoodi tükkideks.Seejärel arvutab vanuse ning väljundiks on ka kuupäev, aasta ja kuu.

Tänud ette ! :)
Hoian su 50€ kokku.

Milleks selline koodijupp klassina teha? Kui sa seda ise teha ei osanud siis ilmselgelt pole sul seda ka klassina vaja.

Klassijupikene on järgmine


PHP kood:
 
<?php

class personalcode{
    public 
$result         = array();
    private 
$age           NULL;
    private 
$birthdate     NULL;
    private 
$personalcode  NULL;
    
    public function 
__construct($personalcode){
        
// siin oleks mõistlik isikukood valideerida
        
$this->personalcode $personalcode;
        
$this->doMagicWithPersonalcode();
    }
    
    public function 
doMagicWithPersonalcode(){
        
$this->birthdate();
        
$this->ageInYears();
        
        return 
$this->result;
    }
    
    private function 
birthdate(){
        
$this->birthdate             substr($this->personalcode52).'-'.substr($this->personalcode32).'-'.$this->century().substr($this->personalcode12);
        
$this->result['DateOfBirth'] = $this->birthdate;
    }
    
    private function 
century(){
        
$century = array(=> array('Man''18'),
                         array(
'Woman''18'),
                         array(
'Man''19'),
                         array(
'Woman''19'),
                         array(
'Man''20'),
                         array(
'Woman''20'));
        
        
// Get personalcode first digit
        
$digit substr($this->personalcode01);
        
        return 
$century[$digit][1];
    }
    
    private function 
ageInYears($splitter '-'){
        list(
$day$month$year) = explode($splitter$this->birthdate);
        
$year_diff  date("Y") - $year;
        
$month_diff date("m") - $month;
        
$day_diff   date("d") - $day;
        
        if (
$month_diff 0){
            
$year_diff--;
        }
        elseif ((
$month_diff==0) && ($day_diff 0)){
            
$year_diff--;
        }
        
        
$this->age           $year_diff;
        
$this->result['Age'] = $year_diff;
    }
}

$personalcode = new personalcode(37605030299);
?>


Resultaat personalcode Object
(
[result] => Array
(
[DateOfBirth] => 03-05-1976
[Age] => 36
)

[age:personalcode:private] => 36
[birthdate:personalcode:private] => 03-05-1976
[personalcode:personalcode:private] => 37605030299
)


Vanuse ja sünnikupäeava saad kätte


PHP kood:
 $personalcode->result['Age']


PHP kood:
 $personalcode->result['DateOfBirth']
RE: Isikukoodi tükeldamisel vanus, kuupäev, aasta ja kuu.
Postitaja: blaa 2013-04-21 19:30:11
klass on küll natuke palju selle asja jaoks

sugu - kas koodi esimene nubmer on paaris või paaritu
sünniaastaarvu saab teada, kui esimesele numbrile liita 16, kui naine siis 15

vanuse saab lühemalt arvutada
$date1 = new DateTime("2007-03-24");
$date2 = new DateTime("2009-06-26");
$interval = $date1->diff($date2);
echo "difference " . $interval->y . " years, "
RE: Isikukoodi tükeldamisel vanus, kuupäev, aasta ja kuu.
Postitaja: rrr 2013-04-22 11:26:00
lol?

$ikp=unpack("a1sugu/a2aasta/a2kuu/a2paev/a3jrk/a1chk", $ikood); //Tükeldame iskukoodi osadeks

$d['sugu']=($ikp['sugu']%2)?"M":"N"; //sugu
$d['s_aasta']=(17+(int)(($ikp['sugu']+1)/2)).$ikp['aasta']; //Sünniaasta 4-kohalisena
$d['s_kuu']=(int)$ikp['kuu']; //sünnikuu
$d['s_paev']=(int)$ikp['paev']; //sünnikuupäev
$d['synniaeg'] = $d['s_aasta'].'-'.$d['s_kuu'].'-'.$d['s_paev'];

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0805580615997