reede, 19. oktoober 2012

Isikukoodist vanuseks

Küsiti, et kuidas isikukoodi põhjal vanust arvutada LibreOffice'is. Ei ole ise küll suurem kontoritarkvara guru, aga proovisisn. LibreOffice toetab Pythoni kasutamist ja Pythonis saaks isikukoodiust vanuse umbes sellise funktsiooniga (profi-arendaja teeks kindlasti lühemaks ja kiiremaks):


# -*- coding: UTF-8-*-
import datetime

# ajamääratluste kasutamine

def vanus(isikukood) :  
    isiktxt = str(isikukood) # isikukoodi tekstiks konverteerimine
    if (isiktxt[0] == "4") or (isiktxt[0] =="3") :  # isikukoodi esimese kahe numbri põhjal
         sajand = "19"                                           #sünnisajandi määramine lihtsustatud kujul
                                                                           #(1800 sündinuid ja 2100+ sündinuid ei arvestata)
    else: 
        sajand = "20"
    saasta = int(sajand+isiktxt[1]+isiktxt[2]) # sünniaasta leidmine
                                                                      #sajand + kaks järgmist isikukoodi numbrit
    kuu = int(isiktxt[3]+isiktxt[4]); # sünnikuu - neljas ja viies isikukoodi number
    praegu = datetime.datetime.now() # praegune aeg
    paasta = praegu.year # praegune aasta
    vanusa = paasta - saasta;
    if praegu.month < kuu  and praegu.date <  int(isiktxt[5]+isiktxt[6]) : return vanusa - 1
    else : return vanusa;


Kui keegi nüüd abi oskaks anda LibreOffice'i Calc'i funktsioonide hulka liitmisel, siis see oleks teretulnud. Fail läheb igatahes kontoriprogrammi seadistustesse /home/kasutaja/.confif/libreoffice/3/user/Scripts/python/fail.py

Kommentaare ei ole:

Minu blogide loend