Calcular data em C#

16/08/2011

0

Pessoal Bom Dia,

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.

Roberto Rodrigues.

Responder

Posts

16/08/2011

Fabio Rosa

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.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar