none
Diferença entre datas em textbox RRS feed

  • Pergunta

  • Boas

     

    Tenho duas textbox em formato de date!

    Em cada uma delas tenho uma data! 

    Preciso de achar a diferença em dias e registar na 3º textbox.

     

    Como fazo isso?

    quarta-feira, 12 de outubro de 2011 17:08

Respostas

  • Isso ocorre porque o codigo do Diego este em c#.

     

    O equivalente em VB é:

     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim data1 As DateTime = Convert.ToDateTime(TextBox1.Text)
            Dim data2 As DateTime = Convert.ToDateTime(TextBox2.Text)
            Dim diferencaDias As Long = data2.Subtract(data1).TotalDays
            TextBox3.Text = diferencaDias.ToString()
        End Sub
    


    resultado:

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta Jonas São Paulo quinta-feira, 13 de outubro de 2011 14:11
    quinta-feira, 13 de outubro de 2011 12:32
    Moderador
  • Ok, mas entao o problema é que o evento em que vc dispara a conversao ocorre antes do TextBox1 esteja preenchido com uma data valida.

     

    Garanta que textbox1 tenha uma data valida e o codigo vai funcionar.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

     


    quinta-feira, 13 de outubro de 2011 13:48
    Moderador

Todas as Respostas

  • Veja se isso te atende:

    var data1 = Convert.ToDateTime(txt1.Text);
    var data2 = Convert.ToDateTime(txt2.Text);
    
    var diferencaDias = data2.Subtract(data1).TotalDays;
    


    • Sugerido como Resposta Diego Bim quinta-feira, 13 de outubro de 2011 14:45
    quarta-feira, 12 de outubro de 2011 18:15
  • Fiz assim:

    Dim data1 = Convert.ToDateTime(TextBox8.Text)

            Dim data2 = Convert.ToDateTime(TextBox7.Text)

     

            Dim diferencaDias = data2.Subtract(data1).TotalDays

            TextBox4.Text = diferencaDias

    DA forma que fala dá erro no var! Diz que não está declarada!

    Assim da-me este erro:

    String was not recognized as a valid DateTime.

    Nesta linha:

    Dim data1 = Convert.ToDateTime(TextBox8.Text)

    quinta-feira, 13 de outubro de 2011 08:05
  • Isso ocorre porque o codigo do Diego este em c#.

     

    O equivalente em VB é:

     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            Dim data1 As DateTime = Convert.ToDateTime(TextBox1.Text)
            Dim data2 As DateTime = Convert.ToDateTime(TextBox2.Text)
            Dim diferencaDias As Long = data2.Subtract(data1).TotalDays
            TextBox3.Text = diferencaDias.ToString()
        End Sub
    


    resultado:

    att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    • Marcado como Resposta Jonas São Paulo quinta-feira, 13 de outubro de 2011 14:11
    quinta-feira, 13 de outubro de 2011 12:32
    Moderador
  • Da-me este erro:

     

    String was not recognized as a valid DateTime.

     

    Nesta linha:

    Dim data1 As DateTime = Convert.ToDateTime(TextBox1.Text)

    quinta-feira, 13 de outubro de 2011 13:08
  • isso ocorre porque vc digitou uma data invalida.

     

     


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

     


    quinta-feira, 13 de outubro de 2011 13:20
    Moderador
  • é assim eu ja converto a textbox 1 e 2 para data noutros códigos! Sera por isso?
    quinta-feira, 13 de outubro de 2011 13:27
  • código que uso para achar a data do datagrid:

     

    Dim valor7 As Date

            For Each col As DataGridViewRow In DataGridView3.Rows

                If col.Cells(7).Value.ToString <> "" Then

                                   If valor7 = Date.MinValue OrElse col.Cells(7).Value < valor7 Then

                        valor7 = col.Cells(7).Value

                    End If

                End If

            Next

            TextBox1.Text = valor7

    quinta-feira, 13 de outubro de 2011 13:29
  • Nao entendi o que vc quiz dizer.

    O problema que vc reportou esta ligado ao fato que Convert.ToDateTime precisa de uma data valida para efetuar a conversao:

    Se vc tentar entar com a data 30/02/2001 vai obter erro, outros exemplos: 99/99/9999, 13/13/2001, etc..

     

    Entre com uma data valida na caixa TextBox1.Text que o problema desaparece.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    quinta-feira, 13 de outubro de 2011 13:32
    Moderador
  • Mas a questão é que ele nem arranca! Dá logo esse erro!
    quinta-feira, 13 de outubro de 2011 13:42
  • Ok, mas entao o problema é que o evento em que vc dispara a conversao ocorre antes do TextBox1 esteja preenchido com uma data valida.

     

    Garanta que textbox1 tenha uma data valida e o codigo vai funcionar.

     

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

     


    quinta-feira, 13 de outubro de 2011 13:48
    Moderador
  • Tem razão! Obrigado William

     

    Abcs

    quinta-feira, 13 de outubro de 2011 14:11