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.

  1. Nenhum comentário ainda.
  1. Nenhum trackbacks ainda.

Deixe uma resposta

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

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.