Redes Sociais
 Telegram  YouTube
Como fazer para verificar idade em kotlin
25 de outubro de 2019

Nesse tutorial vou descrever Como fazer para verificar idade em kotlin assim você pode verificar se a pessoa é maior de 18 anos ou menor.

Essa é uma aplicação que precisa ter API acima da 26 por causa de algumas funções assim como between.

Primeiramente vamos criar um projeto vazio(Empty).

Se você não sabe como criar um projeto vazio veja o link.

Logo depois vamos alterar nossa activity_main para ela conter um EditText de date um botão e um TextView para obter a resposta.

Vamos então deixar o código de nossa activity_main como o seguinte.

activity_main

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="20dp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Digite a data de nascimento: dd/mm/aaaa"/>
        <EditText
            android:id="@+id/etDate"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:inputType="date"/>
        <Button
            android:id="@+id/btnSend"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Enviar"
            android:layout_gravity="center"/>
        <TextView
            android:id="@+id/tvResp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_marginTop="30dp"
            android:textSize="22sp"/>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Agora vamos alterar o nosso código da MainActivity deixe assim como o código a seguir.





MainActivity

package br.com.uware.verificaidade

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import kotlinx.android.synthetic.main.activity_main.*
import java.time.LocalDate
import java.time.Period
import android.text.Editable
import android.text.TextWatcher
import android.widget.EditText


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        etDate.addTextChangedListener(MaskEditUtil.mask(etDate,"##/##/####"))
        btnSend.setOnClickListener {
            tvResp.text = verificaIdade(etDate.text.toString())
        }
    }
    fun verificaIdade(nasc: String): String{
        val hoje = LocalDate.now()
        val ano = nasc.split("/")
        val tempo: LocalDate
        try{
            tempo = LocalDate.of(ano[2].toInt(),ano[1].toInt(),ano[0].toInt())
        }catch(e: Exception){
            Toast.makeText(this, "Erro na data", Toast.LENGTH_LONG).show()
            return "Erro"
        }
        val period = Period.between(tempo,hoje)
        val periodStr = period.toString().split("Y")
        val idade = periodStr[0].substring(1,periodStr[0].length)
        var resp = "Idade: "+idade
        if(idade.toInt()>=18){
            resp += " Maior"
        }
        else{
            resp += " Menor"
        }
        return resp
    }
    object MaskEditUtil {
        fun mask(ediTxt: EditText, mask: String): TextWatcher {
            return object : TextWatcher {
                var isUpdating: Boolean = false
                var old = ""
                override fun afterTextChanged(s: Editable) {}
                override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
                override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
                    val str = unmask(s.toString())
                    var mascara = ""
                    if (isUpdating) {
                        old = str
                        isUpdating = false
                        return
                    }
                    var i = 0
                    for (m in mask.toCharArray()) {
                        if (m != '#' && str.length > old.length) {
                            mascara += m
                            continue
                        }
                        try {
                            mascara += str[i]
                        } catch (e: Exception) {
                            break
                        }
                        i++
                    }
                    isUpdating = true
                    ediTxt.setText(mascara)
                    ediTxt.setSelection(mascara.length)
                }
            }
        }
        fun unmask(s: String): String {
            return s.replace("[.]".toRegex(), "").replace("[-]".toRegex(), "")
                .replace("[/]".toRegex(), "").replace("[(]".toRegex(), ""
                ).replace("[ ]".toRegex(), "").replace("[:]".toRegex(), "").replace("[)]".toRegex(), "")
        }
    }
}

Então agora é hora de compilar e executar nosso projeto.

O aplicativo calcula a idade de acordo com a data de nascimento, bom acredito que você possa utilizar este código com alguma aplicação.

Assim pode ser útil em na hora da verificação da idade para alguns aplicativos, por isso resolvi compartilhar este código com vocês.

Enfim espero poder ter ajudado com esse tutorial sobre Como fazer para verificar idade em kotlin.

Visite e siga nosso canal no YouTube para ajudar no crescimento do site.





Fonte da mascara do EditText: Receitas de código

Autor: Rodrigo Leutz

Desenvolvedor Web e Android ( Kotlin e Java )


Como usar ViewBinding ao invés de Android Extensions em Kotlin

Nesse tutorial vou demonstrar como usar ViewBinding ao invés de Android Extensions em Kotlin e assim deixar seu aplicativo[...]

6 de dezembro de 2020

Começando a programar na linguagem Kotlin – Parte 5

Nesse tutorial Começando a programar na linguagem Kotlin – Parte 5 vamos ver strings e intervalos para que assim seja possível entrar em laços.[...]

7 de fevereiro de 2020

Vídeo 11: Pegar endereço com o CEP Kotlin

Nesse Vídeo 11: Pegar endereço com o CEP Kotlin vou descrever como fazer a parte da programação assim você vai imprimir o endereço na tela.[...]

4 de janeiro de 2020