DateDiff para C#

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;
	}
}

	

Última atualização em Qui, 26 de Abril de 2012 21:21