Oppure

Loading
28/05/09 15:22
the_angel
per forza!

Leggi bene quanto scritto da Jeremy!

Passagli quello che c'è nel text box,
non una data fissa!
aaa
28/05/09 15:49
LoganShile
Dim a As Date = Date.Parse("30/05/09";) oppure Textbox1.text
Dim b As Date = Date.Parse("01/05/09";) oppure Textbox2.text
Dim c As Long = DateDiff(DateInterval.Day, b, a)

Cosa devo associare al click del pulsante per visualizzare il risultato ?
aaa
28/05/09 15:52
the_angel
Postato originariamente da LoganShile:

Dim a As Date = Date.Parse("30/05/09";) oppure Textbox1.text
Dim b As Date = Date.Parse("01/05/09";) oppure Textbox2.text
Dim c As Long = DateDiff(DateInterval.Day, b, a)

Cosa devo associare al click del pulsante per visualizzare il risultato ?


Non so di preciso il formato ecc...

per logica dovrebbe essere qualcosa del genere:

Dim a As Date = Date.Parse(Textbox1.text)
Dim b As Date = Date.Parse(Textbox2.text)
Dim c As Long = DateDiff(DateInterval.Day, b, a)
aaa
28/05/09 16:13
LoganShile
OK ...Credo di aver risolto...Questo è il codice :
Public Class Form1
Dim a As Date = Date.Parse(TextBox1.Text)
Dim b As Date = Date.Parse(TextBox2.Text)
Dim c As Long = DateDiff(DateInterval.Day, b, a)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TexTBox3.Text = Date.Parse(TextBox1.Text).Subtract(Date.Parse(TextBox2.Text)).ToString()
End Sub
End Class

Ma appena avvio il debug, mi da errore: InvalidOperationException...
Sono disperato...:(
Ultima modifica effettuata da LoganShile 28/05/09 16:17
aaa
28/05/09 16:55
Jeremy
Postato originariamente da LoganShile:

Così:
Public Class Form1
Dim data As New DateTime(2008, 3, 20, 10, 20, 5)
Dim data2 As New DateTime(2008, 5, 20, 11, 21, 7)
'ottengo la differenza tra due date
Dim diff As TimeSpan = data2.Subtract(Data)

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("Giorni: " & diff.Days)
MessageBox.Show("Ore: " & diff.Hours)
MessageBox.Show("Minuti: " & diff.Minutes)
MessageBox.Show("Secondi: " & diff.Seconds)
'differenza in un unico passaggio
MessageBox.Show(diff.ToString())
End Sub
End Class
Ma così mi da il risultato sempre lo stesso...


Ciao.
Il metodo che ti hanno probabilmente suggerito diverso dal mio, è sicuramente più corretto, in quanto viene utilizzato un metodo nativo del tipo DateTime (Subtract).
Il problema che riscontri, relativo alla visualizzazione dello stesso risultato, dipende dal fatto che hai inizializzato le variabili Data e Data2 nella loro dichiarazione.:pat:
Per risolvere modifica il codice in questo modo:

Public Class Form1
    Dim data As New DateTime
    Dim data2 As New DateTime

   
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 try
    data=datetime.parse(textbox1.text)
    data2=datetime.parse(textbox2.text)
    Dim diff As TimeSpan = data2.Subtract(Data)
        MessageBox.Show("Giorni: " & diff.Days)
        MessageBox.Show("Ore: " & diff.Hours)
        MessageBox.Show("Minuti: " & diff.Minutes)
        MessageBox.Show("Secondi: " & diff.Seconds)
        'differenza in un unico passaggio
        MessageBox.Show(diff.ToString())
    catch ex as exception
    messagebox.show("Ma cosa hai inserito nelle textbox???" & Environment.newline & _
                    "Pistolino!!! :-D")
    end try
    End Sub
End Class


Facci sapere...
Ciao
aaa
28/05/09 17:19
LoganShile
OK FUNZIONA!!...
Vorrei che tutti i risultati me li dessi in un singolo MessageBox...Senza che ne appaiono di multipli...Ho letto il codice ma non sono riscito a farlo...Come si fà ?
aaa
28/05/09 17:28
Jeremy
Postato originariamente da LoganShile:

OK FUNZIONA!!...
Vorrei che tutti i risultati me li dessi in un singolo MessageBox...Senza che ne appaiono di multipli...Ho letto il codice ma non sono riscito a farlo...Come si fà ?


Un pò di fantasia??? :pat:
MessageBox.Show("Giorni: " & diff.Days & environment.newline & _ 
                "Ore: " & diff.Hours & environment.newline & _ 
                "Minuti: " & diff.Minutes & environment.newline & _ 
                "Secondi: " & diff.Seconds)

Environment.newline non è niente altro che la vecchia costante vbcrlf(Carriage Return Line Feed.....a capo:rofl:), mentre l'underscore preceduto da uno spazio, ti permette di proseguire la riga di codice nella riga successiva.

Facci sapere ....
Ciao
aaa
28/05/09 17:51
LoganShile
Funziona tutto così:

Public Class Form1
Dim data As New DateTime
Dim data2 As New DateTime


Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
data = DateTime.Parse(TextBox1.Text)
data2 = DateTime.Parse(TextBox2.Text)
Dim diff As TimeSpan = data2.Subtract(data)
MessageBox.Show("Giorni: " & diff.Days & Environment.NewLine & _
"Ore: " & diff.Hours & Environment.NewLine & _
"Minuti: " & diff.Minutes & Environment.NewLine & _
"Secondi: " & diff.Seconds)
'differenza In un unico passaggio
MessageBox.Show(diff.ToString())
Catch ex As Exception
MessageBox.Show("Le date inserite non sono valide. Inserisci le date in formato: Giorno/Mese/Anno Ore:Minuti:Secondi" & Environment.NewLine)
End Try
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Form2.Show()
End Sub
End Class

OK...Grazie a tutti ragazzi...Il button2 l'ho aggiunto per dare un piccolo aiuto a chi non sa in che formato scrivere le date...Potete chiudere se volete...Ciao a tutti
aaa