Início > Flex > Calcular idade completa com Flex

Calcular idade completa com Flex

Bueno, Essa função recebe como parâmetro uma data de nascimento e retorna uma String com o ano, mes e dia. A função foi feita validando o resultado no site http://www.timeanddate.com


public static function calcularIdadeCompleta(niver:Date, hoje:Date = null):String
{
	if (!hoje)
	{
		hoje = new Date();
	}

	var idade:String;

	var dias:Number;
	var meses:Number;
	var anos:Number;

	// Já fez aniversário
	if (hoje.getMonth() > niver.getMonth())
	{
		anos = hoje.getFullYear() - niver.getFullYear();

		if (hoje.getDate() < niver.getDate())
		{
			/* remove 1 mês, porque no mês corrente ainda
			 não ultrapassou o dia da data de aniversário */
			meses = hoje.getMonth() - niver.getMonth() - 1;

			// a soma dos dias ultrapassados após o dia da data de aniversário
			dias = hoje.getDate() + (31 - niver.getDate());
		}
		else
		{
			meses = hoje.getMonth() - niver.getMonth();
			dias = hoje.getDate() - niver.getDate();
		}
	}
	else if (hoje.getMonth() < niver.getMonth())
	{
		// remove 1 ano porque ainda não fez aniversário
		anos = hoje.getFullYear() - niver.getFullYear() - 1;

		if (hoje.getDate() < niver.getDate())
		{
			meses = hoje.getMonth();

			// a soma dos dias ultrapassados após o dia da data de aniversário
			dias = hoje.getDate() + (31 - niver.getDate());
		}
		else
		{
			// adiciona 1 mês porque já passou do dia da data de aniversário
			meses = hoje.getMonth() + 1;
			dias = hoje.getDate() - niver.getDate();
		}
	}
	else if (hoje.getMonth() == niver.getMonth())
	{
		if (hoje.getDate() < niver.getDate())
		{
			// remove 1 ano porque ainda não fez aniversário
			anos = hoje.getFullYear() - niver.getFullYear() - 1;
			meses = hoje.getMonth() + 1;
			// a soma dos dias ultrapassados após o dia da data de aniversário
			dias = hoje.getDate() + (31 - niver.getDate());
		}
		else
		{
			anos = hoje.getFullYear() - niver.getFullYear();
			meses = hoje.getMonth() - niver.getMonth();
			dias = hoje.getDate() - niver.getDate();
		}
	}
	idade = anos + "a " + meses + "m " + dias + "d ";
	return idade;
}


Abraço.

Anúncios
Categorias:Flex Tags:, ,
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: