Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m.rc = SUBSTR(ThisForm.Text1.Value,1,6)+SUBSTR(ThisForm.Text1.Value,8,4) &&ulozim rodne cislo bez lomitka
- FOR m.i = 1 TO 9 && tady zjistim jestli neobsahuje nejake mezery navic
- IF (SUBSTR(m.rc,m.i,1) = " ")
- ThisForm.Label5.Caption = "Chyba - neplatný vstup"
- ThisForm.Label3.Caption = ""
- ThisForm.Label4.Caption = ""
- RETURN
- ENDIF
- ENDFOR
- m.mesic_pom = VAL(SUBSTR(m.rc,3,2)) &&vezmeme dvojcisli mesice z rodneho cisla
- IF !((m.mesic_pom >= 1 .AND. m.mesic_pom <=12) .OR. (m.mesic_pom >= 51 .AND. m.mesic_pom <= 62)) &&podminka pro dvojcisli mesice
- ThisForm.Label5.Caption = "Chyba - dvojčíslí měsíce"
- ThisForm.Label3.Caption = ""
- ThisForm.Label4.Caption = ""
- RETURN
- ELSE
- IF m.mesic_pom <=12
- m.mesic = STR(m.mesic_pom)
- m.pohlavi = "muž"
- ELSE
- m.mesic = STR(m.mesic_pom - 50)
- m.pohlavi = "žena"
- ENDIF
- ENDIF
- m.den = SUBSTR(m.rc,5,2) &&den muzeme rovnou vzit z rodneho cisla
- &&lide do roku 1953 start
- IF (SUBSTR(m.rc,10,1) = " ") &&na 10.pozici je mezera -> 9mistne rodne cislo
- IF !((VAL(SUBSTR(m.rc,1,2)) >= 0) .AND. (VAL(SUBSTR(m.rc,1,2)) <= 53)) &&pokud se nejedna o rok mezi 1900 a 1953, rodne cislo je neplatne
- ThisForm.Label5.Caption = "Chyba - dvojčíslí roku"
- ThisForm.Label3.Caption = ""
- ThisForm.Label4.Caption = ""
- RETURN
- ELSE &&pokud se naopak jedna o rok mezi 1900 a 1953, je pripocteno 1900 a rok je ulozen do promenne
- m.rok = STR(1900+VAL(SUBSTR(m.rc,1,2)))
- ENDIF
- ENDIF
- &&lide do roku 1953 konec
- &&lide po roce 1953 start
- IF !(SUBSTR(m.rc,10,1) = " ") &&nikde neni mezera -> vsude jsou cisla -> 10mistne rodne cislo
- IF (VAL(m.rc) % 11 != 0) &&test delitelnosti 11
- ThisForm.Label5.Caption = "Chyba - dělitelnost 11"
- ThisForm.Label3.Caption = ""
- ThisForm.Label4.Caption = ""
- RETURN
- ENDIF
- IF ((VAL(SUBSTR(m.rc,1,2)) >= 54) .AND. (VAL(SUBSTR(m.rc,1,2)) <= 99)) &&rok je mezi 1954 a 1999
- m.rok = STR(1900+VAL(SUBSTR(m.rc,1,2)))
- ELSE
- IF ((VAL(SUBSTR(m.rc,1,2)) >= 0) .AND. (VAL(SUBSTR(m.rc,1,2)) <= 53)) &&rok je mezi 2000 a 2053
- m.rok = STR(2000+VAL(SUBSTR(m.rc,1,2)))
- ELSE
- ThisForm.Label5.Caption = "Chyba - dvojčíslí roku"
- ThisForm.Label3.Caption = ""
- ThisForm.Label4.Caption = ""
- RETURN
- ENDIF
- ENDIF
- ENDIF
- &&lide po roce 1953 konec
- m.datum = CTOD(m.den+"."+m.mesic+"."+m.rok) &&ze dne, mesice a roku poskladam datum
- IF m.datum = CTOD("") &&pokud je datum chybny tak se vrati prazdny datum a rodne cislo je neplatne
- ThisForm.Label5.Caption = "Chyba - datum neexistuje"
- ThisForm.Label3.Caption = ""
- ThisForm.Label4.Caption = ""
- RETURN
- ELSE &&nebo se vrati normalni datum a rodne cislo je platne
- ThisForm.Label5.Caption = "Rodné číslo je platné"
- ThisForm.Label3.Caption = DTOC(m.datum) &&pro vypis se musi datum prevest na string - funkce DTOC()
- ThisForm.Label4.Caption = m.pohlavi
- RETURN
- ENDIF
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement