none
descobrir quantos meses estão selecionado. RRS feed

  • Pergunta

  • preciso de ajuda.. tenho 2 datetimepicker dataInicial e dataFinal

     preciso descobri quantos meses estão selecionado entre os 2 controles..

    ex: datainicial esta com 01/03/2018 e datafinal esta com 01/03/2019, preciso q ele me retorne 12 ,que é a quantidade de meses da data inicial ate a data final.

    domingo, 15 de julho de 2018 17:56

Respostas

  • olá!

    pode tentar assim:

       int month = (int)(dtFinal.Value.Subtract(dtInicial.Value).TotalDays / 30);
        textBox1.Text = month.ToString();

    Em que dtInicial e dtFinal são os DateTimePicker.

    Espero ter ajudado!


    • Editado Timóteo Nkawa segunda-feira, 16 de julho de 2018 20:26
    • Sugerido como Resposta Timóteo Nkawa segunda-feira, 16 de julho de 2018 20:26
    • Marcado como Resposta tunyco terça-feira, 17 de julho de 2018 13:16
    segunda-feira, 16 de julho de 2018 20:21

Todas as Respostas

  • tunyco,

       Seria algo assim?

    DateTime d1 = dtHoraIni.Value; TimeSpan st = new TimeSpan(d1.Hour, d1.Minute, d1.Second);

    DateTime d2 = dtHoraFim.Value; TimeSpan st2 = new TimeSpan(d2.Hour, d2.Minute, d2.Second);

    TimeSpan horaSair = st2 - st; txtHorasTrab.Text = horaSair.ToString();

    ================================
    C# Diferença de horário entre dois DateTimePicker
    https://social.msdn.microsoft.com/Forums/pt-BR/c9c39617-6068-4dd3-9c27-7e0da8305e26/c-diferena-de-horrio-entre-dois-datetimepicker?forum=520

    ================================

        Não esqueça de verificar se a data inicial não é maior que a data final...

    if (st < st2)
    {
       TimeSpan horaSair = st2 - st;
       txtHorasTrab.Text = horaSair.ToString();
    }
    else
    {
       txtHorasTrab.Text = ((new TimeSpan(23, 59, 59)) - st) + (st2 - (new TimeSpan(0,0,0)));
    }

       OUTRO EXEMPLO:

     public CalcularValor(decimal ValorASerPago, string pDataVencimento, decimal Juros, decimal Multa){
    
         DateTime DateVencimento, DataAtual = DateTime.Now;
         DateTime.TryParse(pDataVencimento+" "+"23:59:59", out DateVencimento);   
    
    
         if (DataAtual > DateVencimento) { // Caso a conta esteja vencida é acrescentado os juros e multa
    
              decimal ValorDaMulta = (ValoraSerPago*Multa)/100;
              int TotalDia = (DataAtual.Subtract(DateVencimento)).Days; 
              // Como saber quantos meses e dias restam para aplicar o valor correta referente ao juros de acordo com o tempo de vencimento?
    
           }
        }
    ================================
    Retornando diferença entre datas com dias e meses
    https://pt.stackoverflow.com/questions/221473/retornando-diferen%C3%A7a-entre-datas-com-dias-e-meses
    ================================

       +1...

    ================================
    Diferença entre duas datas
    https://www.devmedia.com.br/diferenca-entre-duas-datas/356
    ================================

       SOMENTE DIAS ÚTEIS!!!

    public int GetDiffDays(DateTime initialDate, DateTime finalDate)
    {
        int days = 0;
        int daysCount = 0;
        days = initialDate.Subtract(finalDate).Days;
     
        //Módulo
        if (days < 0)
            days = days * -1;
     
        for (int i = 1; i <= days; i++)
        {
            initialDate = initialDate.AddDays(1);
            //Conta apenas dias da semana.
            if (initialDate.DayOfWeek != DayOfWeek.Sunday &&
                initialDate.DayOfWeek != DayOfWeek.Saturday)
                daysCount++;
        }
        return daysCount;
    }

    ================================
    CShared #1 – [C#] Contagem de dias úteis entre duas datas.
    18 de agosto de 2010
    Author: thiago.suzuki
    https://www.devmedia.com.br/diferenca-entre-duas-datas/356
    ================================

    []'s,
    Fabio I.

    • Editado Fabio I domingo, 15 de julho de 2018 18:48
    domingo, 15 de julho de 2018 18:41
  • olá!

    pode tentar assim:

       int month = (int)(dtFinal.Value.Subtract(dtInicial.Value).TotalDays / 30);
        textBox1.Text = month.ToString();

    Em que dtInicial e dtFinal são os DateTimePicker.

    Espero ter ajudado!


    • Editado Timóteo Nkawa segunda-feira, 16 de julho de 2018 20:26
    • Sugerido como Resposta Timóteo Nkawa segunda-feira, 16 de julho de 2018 20:26
    • Marcado como Resposta tunyco terça-feira, 17 de julho de 2018 13:16
    segunda-feira, 16 de julho de 2018 20:21
  • obrigado pela ajuda mas não é bem isso que preciso
    • Editado tunyco terça-feira, 17 de julho de 2018 13:20
    terça-feira, 17 de julho de 2018 13:16
  • olá!

    pode tentar assim:

       int month = (int)(dtFinal.Value.Subtract(dtInicial.Value).TotalDays / 30);
        textBox1.Text = month.ToString();

    Em que dtInicial e dtFinal são os DateTimePicker.

    Espero ter ajudado!


    vlw pela ajuda.. é isso mesmo que precisa..

    sera usado na hora de gerar um grafico que não pode ultrapassar 12 meses,


    terça-feira, 17 de julho de 2018 13:20