Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Calcolo differenze tra due date
Forum - Visual Basic 6 - Calcolo differenze tra due date

Avatar
pirola17 (Normal User)
Newbie


Messaggi: 1
Iscritto: 13/02/2011

Segnala al moderatore
Postato alle 17:44
Domenica, 13/02/2011
Ciao a tutti vorrei chiedervi una cosa : Vorrei creare un countdown comprensivo di : Anno, mese, giorno, ore, minuti, secondi; Ho pensato di realizzare una funzione alla quale passo due argomenti (data1, data2); il risultato della funzione è la differenza in formato date (yyy.mm.dd hh.mm.ss) Già ci ho provato e non so quale strada seguire, Vorrei un tuo consiglio.

Aspetto risposta, Saluti Andrea

PM
Avatar
Sal47 (Normal User)
Pro


Messaggi: 96
Iscritto: 05/02/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 16:06
Lunedì, 14/02/2011
Ciao, non so se ho ben compreso la tua domanda perchè sono anche io ai primi programmi in VB6 ma io proverei con il semplice listato seguente:
___________________
Option Explicit
Dim data1, data2, ora1, ora2
Dim scAnno, scMese, scGiorno
Dim scOra, scMin, scSec
-------------------
Private Sub Command1_Click()
Timer1.Enabled = True
End Sub
-------------------
Private Sub Form_Load()
data2 = "01/01/2013": ora2 = "00.00.00"
txtDataFutura = data2 & " ; " & ora2
data1 = Date
txtDataAttuale = data1
End Sub
------------------
Private Sub Timer1_Timer()
lblAnno.Visible = True: lblMese.Visible = True: lblGiorno.Visible = True
lblOre.Visible = True: lblMin.Visible = True: lblSec.Visible = True
Text1.Visible = True: Text2.Visible = True: Text3.Visible = True
Text4.Visible = True: Text5.Visible = True: Text6.Visible = True
Label1.Caption = "Al giorno " & data2 & " mancano: "
ora1 = Time
txtDataAttuale = data1 & " ; " & ora1
'
scAnno = Val(Mid(txtDataFutura, 7, 4)) - Val(Mid(txtDataAttuale, 7, 4))
scMese = Val(Mid(txtDataFutura, 4, 2)) - Val(Mid(txtDataAttuale, 4, 2))
scGiorno = Val(Mid(txtDataFutura, 1, 2)) - Val(Mid(txtDataAttuale, 1, 2))
    If scMese < 12 And scAnno > 0 Then Text1 = scAnno - 1 Else Text1 = 0
    If scMese < 0 Then Text2 = 12 - Val(Mid(txtDataAttuale, 4, 2)) + Val(Mid(txtDataFutura, 4, 2)) Else Text2 = scMese
    If scGiorno < 0 Then Text3 = 30 - Val(Mid(txtDataAttuale, 1, 2)) + Val(Mid(txtDataFutura, 1, 2)) Else Text3 = scGiorno
scOra = 24 - Val(Mid(ora1, 1, 2)) + Val(Mid(ora2, 1, 2))
Text4 = scOra
scMin = 60 - Val(Mid(ora1, 4, 2)) + Val(Mid(ora2, 4, 2))
Text5 = scMin
scSec = 60 - Val(Mid(ora1, 7, 2)) + Val(Mid(ora2, 7, 2))
If scSec = 60 Then scSec = 0
Text6 = scSec
End Sub
________________
Ovviamente:
- ci sarà sicuramente un modo più elegante per risolvere il quesito;
- bisogna "pazientare" per vedere se effettivamente il countdown funziona anche
  per i giorni/mesi/anni (per i secondi e i minuti funziona);
- bisognerà aggiungere ancora diverse cose come: i casi per i mesi di 30/31 gg.,
   l'anno bisestile per febbraio ecc.
Nell'esempio ho fissato la data futura al 1° gen 2013.
Allego anche copia del semplice Form.
Saluti.
Sal47


Sal47 ha allegato un file: Form_CountDown.JPG (13280 bytes)
Clicca qui per guardare l'immagine
PM