Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197

    [vb6.0]operazione con l'orario

    salve a tutti devo eseguire la differenza tra orario 1 e orario 2 esempio


    text1.text="11.30"


    text2.text"12.45"

    label1.caption= alla differenza tra gli orari in formato ore e minuti
    per il momento ho scritto questo codice ma nn funziona al 100 per cento potete aiutarmi




    a = Mid(Text5.Text, 1, 1)
    b = Mid(Text5.Text, 2, 1)
    c = Mid(Text5.Text, 4, 1)
    d = Mid(Text5.Text, 5, 1)
    ore = a & b
    minuti = c & d
    risultato = Val((ore * 60) + minuti)

    a1 = Mid(Text6.Text, 1, 1)
    b1 = Mid(Text6.Text, 2, 1)
    c1 = Mid(Text6.Text, 4, 1)
    d1 = Mid(Text6.Text, 5, 1)
    ore1 = a1 & b1
    minuti1 = c1 & d1
    risultato1 = Val((ore1 * 60) + minuti1)


    risultatoprovvisorio = Val(risultato1 - risultato)
    risultatofinale = Val(risultatoprovvisorio / 60)
    Label4.Caption = risultatofinale

  2. #2
    Usa il tipo di dati Date per effettuare questi confronti:
    codice:
    Dim data1 As Date
    Dim data2 As Date
    data1=CDate(text1.text)
    data2=CDate(text2.text)
    Label4.Caption=Format(data2-data1,"hh.mm")
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    197
    cm grazie ma ho risolto con questo codice lo posto se poetesse servire a qualcuno


    On Error Resume Next
    a = Mid(Text5.Text, 1, 1)
    b = Mid(Text5.Text, 2, 1)
    c = Mid(Text5.Text, 4, 1)
    d = Mid(Text5.Text, 5, 1)
    ore = a & b
    minuti = c & d
    risultato = Val((ore * 60) + minuti)

    a1 = Mid(Text6.Text, 1, 1)
    b1 = Mid(Text6.Text, 2, 1)
    c1 = Mid(Text6.Text, 4, 1)
    d1 = Mid(Text6.Text, 5, 1)
    ore1 = a1 & b1
    minuti1 = c1 & d1
    risultato1 = Val((ore1 * 60) + minuti1)


    risultatoprovvisorio = Val(risultato1 - risultato)

    risultatofinaleore = Val(risultatoprovvisorio \ 60)
    If Val(risultatofinaleore) < "10" Then
    risultatofinaleore = "0" & risultatofinaleore
    End If
    risultatofinaleminuti = Val(risultatoprovvisorio Mod 60)
    If Val(risultatofinaleminuti) < "10" Then
    risultatofinaleminuti = "0" & risultatofinaleminuti
    End If

    Label4.Caption = risultatofinaleore & ":" & risultatofinaleminuti

  4. #4
    Be, ti consiglio comunque di usare il codice da me proposto perché è molto più efficiente e compatto del tuo: infatti, mentre il tuo effettua un sacco di conti e di concatenazioni di stringhe (che richiedono ogni volta la riallocazione di memoria necessaria per contenere la stringa), il mio si limita a convertire le due date in numeri seriali (all'atto pratico il formato Date è un numero a 64 bit), ad effettuarne una normale differenza (pochi opcode della CPU) e a formattarlo come stringa (una sola allocazione di memoria).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.