Calcular data em C#
Pessoal Bom Dia,
Preciso de uma dica de vocês para passar esse código pl_Sql abaixo para calcular em c#.
Resultado em:
Anos:
Meses:
Dias:
Por gentileza um Help pessoal!!!
Preciso de uma dica de vocês para passar esse código pl_Sql abaixo para calcular em c#.
FLOOR (MONTHS_BETWEEN (NVL (dt_termino, SYSDATE) + 1, dt_inicio)/ 12)AS ano, FLOOR (MONTHS_BETWEEN (NVL (dt_termino, SYSDATE) + 1, dt_inicio)) - FLOOR (MONTHS_BETWEEN (NVL (dt_termino, SYSDATE) + 1, dt_inicio)/ 12)* 12 AS mes, (ROUND (MOD (MONTHS_BETWEEN (NVL (dt_termino, SYSDATE) + 1, dt_inicio), 1)* 30,0)) AS dia
Resultado em:
Anos:
Meses:
Dias:
Por gentileza um Help pessoal!!!
Roberto Rodrigues.
Curtidas 0
Respostas
Fabio Rosa
16/08/2011
Olá,
Pelo que percebi a sua função acima considera todos os meses com 30 dias, ou seja, desconsidera os fevereiros...??
Se for considerar um ano com 365 dias e todos os meses com 30 dias, podes fazer assim (por exemplo):
class Program { static void Main(string[] args) { DateTime datainicial = DateTime.Parse("30/03/2008"); DateTime datafinal = DateTime.Parse("05/05/2011"); TimeSpan diferenca = datafinal.Subtract(datainicial); int anos = diferenca.Days / 365; int meses = (diferenca.Days - (anos * 365)) / 30; int dias = ((diferenca.Days - (anos * 365)) - (meses * 30));
Console.WriteLine("Difere em ano(s), mes(es) e dia(s)", anos, meses, dias); Console.ReadLine(); } }
porém, se quiser um cálculo mais exato deverá trabalhar os meses de fevereiro e as diferenças de 30 e 31 de cada mês, assim como o total de dias de cada ano...
Att.
Pelo que percebi a sua função acima considera todos os meses com 30 dias, ou seja, desconsidera os fevereiros...??
Se for considerar um ano com 365 dias e todos os meses com 30 dias, podes fazer assim (por exemplo):
class Program { static void Main(string[] args) { DateTime datainicial = DateTime.Parse("30/03/2008"); DateTime datafinal = DateTime.Parse("05/05/2011"); TimeSpan diferenca = datafinal.Subtract(datainicial); int anos = diferenca.Days / 365; int meses = (diferenca.Days - (anos * 365)) / 30; int dias = ((diferenca.Days - (anos * 365)) - (meses * 30));
Console.WriteLine("Difere em ano(s), mes(es) e dia(s)", anos, meses, dias); Console.ReadLine(); } }
porém, se quiser um cálculo mais exato deverá trabalhar os meses de fevereiro e as diferenças de 30 e 31 de cada mês, assim como o total de dias de cada ano...
Att.
GOSTEI 0