Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [VB6] Cronometro

  1. #1

    [vb6] Cronometro

    ciao a tutti dovrei fare un crometro che dia in risultato:
    Numero Anni, Numero Mesi, Numero Giorni, Numero Ore,Numero Minuti e Numero Secondi...
    HO fatto due righe di script così:
    codice:
    Private Sub Timer1_Timer()
    Dim datainizio, dataoggi As Date
    Dim show As String
    Label4.Caption = "25/05/2035"
    Label5.Caption = Date
    dataoggi = Label5.Caption
    datainizio = Label4.Caption
    orainizio = "08:00:00"
    oraoggi = Time
    
    dy = Year(datainizio) - Year(dataoggi)
    dm = Month(datainizio) - Month(dataoggi)
    dg = Day(datainizio) - Day(dataoggi)
    doo = 24 + (Hour(orainizio) - Hour(oraoggi))
    dmm = 60 + (Minute(orainzio) - Minute(oraoggi))
    ds = 60 + (Second(orainzio) - Second(oraoggi))
    
    
    show = dy & " Anni," & dm & " mesi, " & dg & " giorni, " & doo & " ore " & dmm & " minuti " & ds & " secondi!"
    
    LBL_daro.Caption = show
    End Sub
    e mi funziona, solo oggi mi fa vedere:
    29 anni, 4 mesi, -13 giorni....

    mi aiutate a migliorarlo?
    che non appaiano valori negativi...

  2. #2
    ciao

    il problema è semplice: la tua data, con la funzione day, year ect... il tuo programma ricava dalla data il numero del mese, o del giorno in cui siamo, non del numero di giorni complessivi.Perciò il tuo programma non è preciso. a questo punto bisogna adoperare una scelta: poniamo che tutti i mesi siano formati da 30 giorni.

    if dg < 0 then
    dg = 30 + dg
    dm = dm - 1
    if dm < 0 then
    dm = 12 + dm
    dy = dy -1
    end if
    end if

    quà siamo però partiti solo dal giorno: teoricamente bisognerebbe partire dai secondi.

    ciao

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, c'è un modo con la funzione DateDiff
    ora non ricordo bene quale sia il valore da usare come parametro.. ma indicativamente mi sembra una cosa del genere:
    codice:
    Private Sub Command1_Click()
        Dim G As Double
        Dim GG As Long
        Dim MM As Long
        Dim YY As Long
        
        G = DateDiff("d", dataIniziale, dataFinale)
        YY = Int(G / 365.5)
        G = (G - (YY * 365.5))
        MM = Int(G / 30.5)
        GG = G - (MM * 30.5)
        MsgBox YY & " " & MM & " " & GG
    End Sub
    Jupy

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.