Classe com Métodos de extensão C# (CSharp)

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 04/12/2019


Se você ainda não sabe o que é um método de extensão para C#, recomento que de uma olhada em nossa postagem em Métodos de extensão C#, por hora vamos deixar aqui sempre atualizada nossa classe com diversos Métodos de Extensão para que use em seus projetos, caso queira colaborar e tenha um método novo que possa ajudar nossa comunidade, nos envie, terei prazer em disponibilizar aqui.

Minha sugestão é que crie uma pasta em seu projeto para colocar suas customizações, depois crie o arquivo ExtensionMethods.cs copie e cole o conteúdo do quadro abaixo.

ExtensionMethods.cs

/*

Autor: Antonio Azevedo
Visite: www.codigoexpresso.com.br  
Descrição: Classe com métodos de extensão para utilizar em seus projetos

Atualizada : 05/12/2019

*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

public static class ExtensionMethods
{
    #region DateTime
    // Metodos de Extensoes para Data e Hora

    /// <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 = null);

        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 = null)
    {
        return ((data == null) ? 0 : YearsOld(data, now));
    }

    #endregion DateTime
}


Não deixa de visitar e se inscrever em nosso Canal no YouTube, você aprende e ajuda a manter este site, Obrigado.



Links Relacionados



Comentários