Calcular Idade C# (CSharp), diferença anos entre duas datas
Postado em : 05/12/2019
Função para calcular diferença em anos, (idade) entre duas datas, você deve informar o primeiro parâmetro data, já o segundo paramento now utilizado para a para comparação pode ser suprimido, quando isto acontecer é atribuída a data atual a este parâmetro.
Lembrando é claro que esta função deve estar dentro de uma classe também publica e estática, public static class [suaclasse]
.
Função para calcular Idade (YearsOld)
/* Autor: Antonio Azevedo Visite: www.codigoexpresso.com.br Descrição: calculo Idade Calcula quantidade de anos entre duas datas (Idade) */ /// <summary> /// Calcula quantidade de anos passdos com base em duas datas, caso encontre qualquer problema retorna 0 /// </summary> /// <param name="data">Data inicial</param> /// <param name="now">Data final ou deixar nula para data atual</param> /// <returns>Retorna inteiro com quantiadde de anos</returns> public static int YearsOld(DateTime data, DateTime? now = null) { // Carrega a data do dia para comparação caso data informada seja nula now = ((now == null) ? DateTime.Now : now); try { int YearsOld = (now.Value.Year - data.Year); if (now.Value.Month < data.Month || (now.Value.Month == data.Month && now.Value.Day < data.Day)) { YearsOld--; } return (YearsOld < 0) ? 0 : YearsOld; } catch { return 0; } }
Exemplo de uso
// Definindo o primeiro parametro como 15/10/2010 DateTime data = new DateTime(day: 15, month: 10, year: 2010); // Exibindo o resultado comparando com data atual, no caso 05/12/2019 Console.WriteLine("Quantidade Anos: " + Funcoes.YearsOld(data).ToString()); Resultado => Quantidade Anos: 9 // Definindo uma segunda data como data final, faltando 1 mês para completar 2 anos DateTime dataFinal = new DateTime(day: 14, month: 10, year: 2012); Console.WriteLine("Quantidade Anos: " + Funcoes.YearsOld(data, dataFinal).ToString()); Resultado => Quantidade Anos: 1
Você pode encontrar também as mesmas funções, mas para uso como extensões de métodos, ao implementar estes métodos estas funções passam a ficar disponíveis quando da utilização do método, deixando mais pratico sua utilização.
Segue funções para utilização como métodos de extensão para calculo de idade.
/* Autor: Antonio Azevedo Visite: www.codigoexpresso.com.br Descrição: calculo Idade Calcula quantidade de anos entre duas datas (Idade) */ /// <summary> /// Calcula a diferenca em anos de duas datas, ou seja, a idade /// </summary> /// <param name="data">data mais antiga</param> /// <param name="now">data mais recente ou deixar nula para calcular com data do dia</param> /// <returns>um inteiro com a diferença de anos entre as duas datas, qualquer problema encontrado retornamos 0</returns> public static int YearsOld(this DateTime data, DateTime? now) { // Carrega a data do dia para comparação caso data informada seja nula now = ((now == null) ? DateTime.Now : now); try { int YearsOld = (now.Value.Year - data.Year); if (now.Value.Month < data.Month || (now.Value.Month == data.Month && now.Value.Day < data.Day)) { YearsOld--; } return (YearsOld < 0) ? 0 : YearsOld; } catch { return 0; } } /// <summary> /// Este metodo complementa o metodo acima para datas nulas /// </summary> public static int YearsOld(this DateTime? data, DateTime? now) { return ((data == null) ? 0 : YearsOld(data, now)); }
Exemplo de uso das extensões de métodos
// Definindo o primeiro parametro como 15/10/2010 DateTime data = new DateTime(day: 15, month: 10, year: 2010); Console.WriteLine("Quantidade Anos: " + data.YearsOld().ToString()); Resultado => Quantidade Anos: 9 // Definindo uma segunda data como data final, faltando 1 mês para completar 2 anos DateTime dataFinal = new DateTime(day: 14, month: 10, year: 2012); Console.WriteLine("Quantidade Anos: " + data.YearsOld(dataFinal).ToString()); Resultado => Quantidade Anos: 1
Utilize nossa Classe com todos os métodos de extensão disponíveis, procuramos deixar sempre atualizada para você;
Não deixa de visitar e se inscrever em nosso Canal no YouTube, você aprende e ajuda a manter este site, Obrigado.
Links Relacionados
- Arquitetura CQRS
- Arrays em C#(CSharp)
- C#(CSharp) Converter inteiro para Hexadecimal e Hexadecimal para Inteiro
- C#(CSharp) Exemplo de Conversão de um List<> de uma classe qualquer para um DataTable.
- C#(CSharp) Função para verificar se um determinado número é Primo
- Classe com Métodos de extensão C# (CSharp)
- Classe para Ler e Gravar Cookies - Asp.Net MVC 4 com C# (CSharp)
- Classe para tratar valores nulos vindos de nossa Query SQL, C#(CSharp).
- Classes anônimas em C#(CSharp)
- Comando nameof() C#(CSharp)
- Compare duas strings ignorando maiúsculas e minúsculas C#(CSharp).
- Consulta SQLServer com paginação
- Criar Classes Dinâmicas usando DynamicObject e ExpandoObject em C# (CSharp)
- Definir o dia em um DateTime.
- DELETE CASCADE no SqlServer
- Desvendando o Poder da Função STRING_AGG no SQL Server para concatenação de dados
- Diferença entre parâmetros REF e OUT em C#(CSharp)
- Emitir sons pelo auto-falante do computador em C# (CSharp)
- Estrangulando um monólito C#(CSharp)
- Exemplo de acesso a dados com SQL Server em C#.
- Exemplo de consulta em SqlServer para encontrar uma chave Estrangeira
- Explorando Tipos de Dados Personalizados no SqlServer: Utilidade e Impacto na Performance
- Extensões para DataReader, tratando valores de suas consultas SQL (DataReaderExtensions) C#(CSharp)
- Formatar CEP em C# (CSharp)
- Função para devolver data do próximo dia da semana informado C#(CSharp).
- Gerando números randômicos para sorteio de jogos de azar C#(CSharp)
- Grafana Loki e .NET Framework com C#
- Incrementando e decrementando variáveis em C#(CSharp)
- Injeção de dependência
- Ler string de conexão (connectionStrings) do arquivo Web.config Asp.Net MVC co C#(CSharp)
- Métodos de extensão C#
- Ordenando um array com o comando OrderBy C#(CSharp)
- Parar um loop foreach usando o comando break C#(CSharp).
- Recuperar a URL da página anterior em Asp.Net C# (CSharp)
- Recuperar a URL da página atual em Asp.Net C# (CSharp)
- Recuperar para código C# (CSharp) o valor de um componente de nossa página
- Retorna o IP da conexão do Cliente em Asp.Net MVC com C# (CSharp)
- Retorna os dados do Navegador do Cliente em Asp.Net MVC com C# (CSharp)
- Salvando CSV com cabeçalho no SQL Server Management Studio
- Separar String de caracteres C#(CSharp)
- Serilog e .NET Framework com C#
- Tipos de dados em C# (CSharp)
- Tipos de dados primitivos em C#(CSharp)
- Validando Valores nulos vindos de nosso Banco de Dados C#(CSharp)
- Validar Modelos com Data Annotation e Windows Form Application C#(CSharp)
- Verificar se uma string é um digito em C# (CSharp)