Estava migrando um sistema de cálculos previdenciários desenvolvido em ASP clássico para ASP.NET e C# como codebehind.
Um dos cálculos utilizava a função dateDiff do ASP que retorna a diferença entre duas datas, em dias, meses ou anos.
Pesquisei na internet e descobri que o VB.NET possui essa função, porém o C# não.
Então encontrei algumas funções na internet e adaptei as minhas necessidades e vou compartilhar com vocês.
/** * DateDiff para C# * Indica qual será o retorno [d = Dias, m = Meses, y = Anos] * Data Inicial * Data Final * Retorna a diferença de acordo com o Intervalo escolhido */ public int dateDiff(char charInterval, DateTime dttFromDate, DateTime dttToDate) { TimeSpan tsDuration; tsDuration = dttToDate - dttFromDate; if (charInterval == 'd') { // Resultado em Dias return tsDuration.Days; } else if (charInterval == 'm') { // Resultado em Meses double dblValue = 12 * (dttFromDate.Year - dttToDate.Year) + dttFromDate.Month - dttToDate.Month; return Convert.ToInt32(Math.Abs(dblValue)); } else if (charInterval == 'y') { // Resultado em Anos return Convert.ToInt32((tsDuration.Days) / 365); } else { return 0; } }