none
Subtrair data do maskedbox de valor fixo do textbox RRS feed

  • Pergunta

  • Boa noite pessoal.

    Venho mais uma vez pedir a ajuda de vocês. Tenho um maskedbox contendo a data recebida do banco de dados e tenho um textbox que retorna um valor fixo do banco tbm. Preciso fazer a subtração do valor do maskedbox desse textbox.

    Vi alguns exemplos dessa subtração mas apenas entre datas. Podem me ajudar ?

    segunda-feira, 6 de junho de 2016 23:20

Respostas

Todas as Respostas

  • boa noite,

    Pelo que entendi, você pode fazer um parser da string, que é do seu textbox para um datetime e subtrair normalmente entre datas.

    http://www.dotnetperls.com/datetime-parse


    http://www.dotnetperls.com/datetime-subtract
    segunda-feira, 6 de junho de 2016 23:40
    Moderador
  • Tentei fazer o que vc disse mas não deu certo. Será que fiz algo de errado ao converter ?

    DateTime data1 = DateTime.Parse(txb_Data_Calibracao.Text);
                DateTime data2 = DateTime.Parse(tcb_Frequencia_Calibracao.Text);
    
                TimeSpan final = data1.Subtract(data2);
                MessageBox.Show(final.Days.ToString() + " dias restantes");

    terça-feira, 7 de junho de 2016 00:22
  • Qual erro que deu?

    Você precisa passar a data neste formato

                DateTime data1 = DateTime.Parse("07/06/2016");
                DateTime data2 = DateTime.Parse("06/06/2016");
    
                TimeSpan final = data1.Subtract(data2);
               MessageBox.Show(final.Days.ToString() + " dias restantes");
    ou assim 07-06-2016

    terça-feira, 7 de junho de 2016 00:40
    Moderador
  • Na verdade preciso pegar os valores de uma maskedbox no formato de data e o valor em dias de um textbox, por isso não coloquei o valor da data.

    Quando executo da o erro " Cadeia de caracteres não foi reconhecida como DateTime válido ". Criei um button e coloquei o codigo pra testar, depois quero colocar pra atualizar automatico, ao digitar a data atual.

    terça-feira, 7 de junho de 2016 00:48
  • Esqueci de falar que o erro foi originado pelo valor do textbox, que não é o valor da data e sim o de dias.

    Exemplo. MaskedBox = 06/06/2016  TextBox = 180

         

    terça-feira, 7 de junho de 2016 00:50
  • Mas ai você quer pegar a data de 180 dias atrás? por exemplo a data de hoje menos 180 dias, ai descobrir a data dd/MM/yyyy atrás?


    terça-feira, 7 de junho de 2016 01:24
    Moderador
  • Seria basicamente isso mesmo. Tenho uma data que será inserida no maskedbox e o valor da frequencia que sera recebida direto do banco de dados. Preciso somar a data inserida com o valor recebido e gerar uma nova data para vencimento.

    Ex: data atual = 06/06/2016 / Frequencia = 180 >> Ai ficaria 06/06/2016 + 180 = 06/12/2016

    Preciso que faça esse calculo, soma de data com valor inteiro e me retorne uma nova data

    terça-feira, 7 de junho de 2016 01:30
  • então é somar.

                DateTime data1 = DateTime.Parse("07/06/2016");
                DateTime data2 = data1.AddDays(180);

    • Marcado como Resposta Philipe Said terça-feira, 7 de junho de 2016 01:54
    terça-feira, 7 de junho de 2016 01:33
    Moderador
  • Não deixei claro, os valores do maskedBox e do textBox não são os mesmos, irá variar de acordo com os dados recebidos do banco de dados. Para cada item do banco de dados terá uma data e frequência diferentes. Por isso preciso pegar o valor dos MaskedBox e do textBox e fazer esse calculo e não utilizar o mesmo.
    terça-feira, 7 de junho de 2016 01:39
  • Sim, mas aqui foi só exemplo. Agora você pega do seus controles.

    terça-feira, 7 de junho de 2016 01:41
    Moderador
  • Deu certo com o código que vc descreveu, agora preciso só formatar os parâmetros de retorno da data.

    Muito obrigado pela ajuda

    terça-feira, 7 de junho de 2016 01:56
  • :)

    terça-feira, 7 de junho de 2016 02:00
    Moderador