GithubHelp home page GithubHelp logo

fre5h / rnokpp Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 0.0 79 KB

🇺🇦 🆔 Helper functions to work with Ukrainian registration number of the taxpayer's account card (РНОКПП).

Home Page: https://github.com/fre5h/rnokpp

License: MIT License

Go 100.00%
tax-number ukraine rnokpp go go-library library

rnokpp's Introduction

RNOKPP (РНОКПП)

Helper functions to work with Ukrainian registration number of the taxpayer's account card (RNOKPP).
Допоміжні функції для роботи з реєстраційним номером облікової картки платника податків (РНОКПП).

Build Status CodeCov Go Report Card License Gitter GoDoc

Demo ⚙️

You can test it with my RNOKPP Telegram Bot.

Requirements 🧐

  • GO >= 1.20

Features 🎁

  • Get details about RNOKPP
  • Get gender
  • Check gender
  • Check validity
  • Generate RNOKPP by date and gender
  • Generate random RNOKPP

Using 👨‍🎓

main.go
package main

import (
    "fmt"
    "time"

    "github.com/fre5h/rnokpp"
)

func main() {
    // Get details about RNOKPP
    details, _ := rnokpp.GetDetails("3652504575")
    fmt.Println("details:", details) // valid, male, 01.01.2000

    // Get gender from RNOKPP
    gender1, _ := rnokpp.GetGender("3652504575")
    fmt.Println("gender1:", gender1) // male
    gender2, _ := rnokpp.GetGender("3068208400")
    fmt.Println("gender2:", gender2) // female

    // Check gender
    isMale, _ := rnokpp.IsMale("3652504575")
    fmt.Println("is male:", isMale) // true
    isFemale, _ := rnokpp.IsFemale("3652504575")
    fmt.Println("is female:", isFemale) // false

    // Check valid RNOKPP
    validRnokpp := rnokpp.IsValid("3652504575")
    invalidRnokpp := rnokpp.IsValid("1234567890")
    fmt.Println("rnokpp valid:", validRnokpp, invalidRnokpp) // true, false

    // Generate RNOKPP by date and gender
    birthday, _ := time.Parse("02.01.2006", "01.01.2000")
    generatedRnokppMale, _ := rnokpp.GenerateRnokpp(birthday, rnokpp.Male)
    fmt.Println("valid RNOKPP for male with birthday on 01.01.2000:", generatedRnokppMale) // valid RNOKPP for male with birthday on 01.01.2000, e.g. 3652322032
    generatedRnokppFemale, _ := rnokpp.GenerateRnokpp(birthday, rnokpp.Female)
    fmt.Println("valid RNOKPP for female with birthday on 01.01.2000:", generatedRnokppFemale) // valid RNOKPP for female with birthday on 01.01.2000, e.g. 3652347000

    // Generate a one random RNOKPP
    generatedRandomRnokpp, _ := rnokpp.GenerateRandomRnokpp()
    fmt.Println("random rnokpp:", generatedRandomRnokpp) // e.g. random rnokpp: 3300507061
    // Or generate some number of random RNOKPPs
    generatedRandomRnokpps, _ := rnokpp.GenerateRandomRnokppN(3)
    for i, generatedRandomRnokpp := range generatedRandomRnokpps {
        fmt.Printf("random rnokpp #%d: %s\n", i, generatedRandomRnokpp)
    }
}
bash
$ go get "github.com/fre5h/rnokpp"@v1.1.2
go: downloading github.com/fre5h/rnokpp v1.1.2
go: added github.com/fre5h/rnokpp v1.1.2

$ go run main.go
details: valid, male, 01.01.2000
gender1: male
gender2: female
is male: true
is female: false
rnokpp valid: true false
valid RNOKPP for male with birthday on 01.01.2000: 3652322032
valid RNOKPP for female with birthday on 01.01.2000: 3652347000
random rnokpp: 3300507061
random rnokpp #0: 3946436021
random rnokpp #1: 2642527503
random rnokpp #2: 2620337525

Contributing 🤝

See CONTRIBUTING file.

rnokpp's People

Contributors

fre5h avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.