Torna indietro   Hardware Upgrade Forum > Software > Programmazione

HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata
Le webcam Insta360 Link 2 Pro e Link 2C Pro sono una proposta di fascia alta per chi cerca qualità 4K e tracciamento automatico del soggetto senza ricorrere a configurazioni complesse. Entrambi i modelli condividono sensore, ottiche e funzionalità audio avanzate, differenziandosi per il sistema di tracciamento: gimbal a due assi sul modello Link 2 Pro, soluzione digitale sul 2C Pro
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-03-2005, 14:02   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[VB6] calcolare differenza tra date

Buona domenica a tutti.

Non riesco in visual basic ad effettuare un calcolo tra date;

es:

input al 03/03/2005 alle 15:00:39


output al 06/03/2005 alle 20:31:46


non riesco a capire come fargli fare il totale delle ore e dei giorni.

Mi aiutate?

Thx.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2005, 20:20   #2
motogpdesmo16
Senior Member
 
Iscritto dal: Feb 2004
Città: Molfetta (BA) Squadra:BARI
Messaggi: 1085
io so che il visual basic ha una funzione predefinita che calcola la distanza in giorni dalla data odierna. Si chiama DateDiff. C'è una peculiarità: nel caso la data inserita in input è anteriore alla data odierna, il numero di giorni risulta essere negativo.


questo è il codice comunque (che puoi anche trovare nell'help in linea)

Codice PHP:
Private Sub Form_Load()
Dim TheDate as Date
Dim Msg
TheDate
=InputBox("Digitare una data")
Msg="Giorni dalla data odierna: " DateDiff("d"NowTheDate)
MsgBox Msg
End Sub 
__________________
Ho felicemente trattato con: Raziel1984,]Rik`[,fab77,pralina,vin81,drago,Qrama,Hangar18,gallo85,kikbond
motogpdesmo16 è offline   Rispondi citando il messaggio o parte di esso
Old 06-03-2005, 23:35   #3
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
scusa, colpa mia che mi sono espresso una schifezza..

allora, in un database, ho un campo "Orario", che memorizza un "Now"....

es.:

06/03/2005 23.14.05


quindi, mi prende la data precisa completa di ora, minuti e secondi.

Bene, quello che avrei necessità di fare, è che anzichè prendermi l'orario in questa maniera, me lo divida in:

data
ora

in modo da avere nel database:

data
06/03/2005

ora
23.14.05

e fin qui, credo che devo solo capire come "scomporre" il comando Now per farmi questa divisione.

ora, succede che devo fare il calcolo del tempo in base alle ore, e non alla data, ovvero:

ora1
23.00.00

ora2
24.00.00

totale ore

1.00

ho provato con:

DateDiff("h", Ora1, Ora2)

ma senza successo
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 00:12   #4
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Allura, per fare quello che vuoi tu fai così:

MsgBox Format(Now, "dd/mm/yyyy")
MsgBox Format(Now, "hh.ss")

naturalmente metti in Now la data presa dal database.


Per fare i calcoli, è giusto come fai tu, ma le 24 nn sono un ora, perchè in tutto il mondo sono le 0 !!

Quandi mi sa che devi rivedere un po' la faccenda.
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 00:20   #5
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da matpez
Allura, per fare quello che vuoi tu fai così:

MsgBox Format(Now, "dd/mm/yyyy")
MsgBox Format(Now, "hh.ss")

naturalmente metti in Now la data presa dal database.


Per fare i calcoli, è giusto come fai tu, ma le 24 nn sono un ora, perchè in tutto il mondo sono le 0 !!

Quandi mi sa che devi rivedere un po' la faccenda.
mmm.... forse il problema è un pò più complicato, e mi scuso ancora se l'ho spiegato una schifezza

allora, la tabella del db ha questi campi:

Nome
data
orario


bene, la divisione di "Now" l'ho semplicemente effettuata così:

in "Date" e in "Time", in modo che nei due campi del db

ottengo:

RaouL
07/03/2005
13.10.25


E fin qui va tutto bene ma....quello che in realtà devo calcolare, è il tempo che "Raoul" ha trascorso tra quando ha inserito per la prima volta il suo nome per iniziare la sessione, e quando lo ha ri-digitato per terminare.

Quindi, nel DB io avrò ad esempio:

Codice:
RaouL   07/03/2005    13.10.25
RaouL   07/03/2005    18.10.25
Bene, come faccio ad ottenere le 5 ore?


__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 08:44   #6
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Io ho provato, ma se faccio così...

Codice:
MsgBox DateDiff("h", CDate("07/03/2005 13.10.25"), CDate("07/03/2005 18.10.25"))
...funziona e ti tornano le tue 5 ore
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 15:29   #7
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da matpez
Io ho provato, ma se faccio così...

Codice:
MsgBox DateDiff("h", CDate("07/03/2005 13.10.25"), CDate("07/03/2005 18.10.25"))
...funziona e ti tornano le tue 5 ore

Ma mi funziona se ad esempio io prendo l'intervallo da due textbox, o due variabili, ma non mi riesce di farlo funzionare visto che la Data1 e la Data2, sono un recordset;

es.:

Codice:
MsgBox DateDiff("h", rs("Orario"), rs("Orario"))
In questo modo non mi funziona purtroppo
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 15:54   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
MsgBox DateDiff("h", CData(rs("Orario")), CDate(rs("Orario")))
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 16:45   #9
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Quote:
Originariamente inviato da cionci
MsgBox DateDiff("h", CData(rs("Orario")), CDate(rs("Orario")))
Eggià cionci, RaouL_BennetH nn guarda fino in fondo gli esempi, già nel mio era così, heehheeh, sei un pochino sbadatello
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 20:36   #10
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da matpez
Eggià cionci, RaouL_BennetH nn guarda fino in fondo gli esempi, già nel mio era così, heehheeh, sei un pochino sbadatello
Chiedo perdono ad entrambi


really sorry


Grazie millissime cmq

torno fra poco per bombardarvi di nuovo
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 21:01   #11
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Però...... no, evidentemente non ci arrivo:

Come differenza mi da sempre 0.

ecco il codice:

Codice:
MsgBox DateDiff("h", CDate(rs("orario")), CDate(rs("orario")))
Nel campo del db orario ho questi due orari:

22.14.58
23.21.12

Ho provato a metterli anche senza secondi, ma qualsiasi orario abbia, mi restituisce sempre 0.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 07-03-2005, 21:07   #12
matpez
Senior Member
 
L'Avatar di matpez
 
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
Bhe ma è logico... pensaci, stai dando alla differenza la stesso valore, nn ti sembra veramente una caxxata?

Per fare quello che vuoi tu, ti devi memorizzare in una variabile Date il primo valore e poi il secondo!

dtData1=rs("orario"))
rs.movenext
dtData2=rs("orario"))

MsgBox DateDiff("h", dtData1, dtData2)
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!"
A. Einstein
matpez è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 17:08   #13
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Tornando su questo codice che poi grazie al VS aiuto sono riuscito a far funzionare, ora volevo lavorare un pò di fino e fare in modo che non mi 'arrotondasse' il risultato.

Ad es.: se la differenza fra le ore è di 5.37

vorrei averlo con una certa precisione perchè riesco solo ad ottenere un arrotondamento a 5 ore.

Suggerimenti?

Thx.

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 17:28   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
DateDiff("h", dtData1, dtData2)

Perchè così gli chiedi di calcolarlo in ore...

Calcolalo in secondi e poi fai una divisione intera per 60 per ottenere i minuti e una divisone intera per 3600 per ottenre le ore...

Ciao
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 17:33   #15
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da cionci
DateDiff("h", dtData1, dtData2)

Perchè così gli chiedi di calcolarlo in ore...

Calcolalo in secondi e poi fai una divisione intera per 60 per ottenere i minuti e una divisone intera per 3600 per ottenre le ore...

Ciao
Ci avevo pensato sinceramente, ma, credevo di star facendo un ragionamento troppo complicato, e stavo cercando su msdn qualcosa tipo: ("h:m"......)

non avendola trovata sono arrivato qui:

http://msdn.microsoft.com/library/it...onsDtoGVBA.asp

dove infatti non c'è una funzione apposita che restituisca direttamente un dato più preciso, cioè, come serve a me.

Thx a lot
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 18:02   #16
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
qualcosa non torna:

allora, nel db il campo "sessione" è in formato testo

in questo campo ci va il dato in questa forma:

19/03/2005 18.00.40 (per esempio)

ora, ho seguito il suggerimento di Matpez che mi diceva di crearmi una variabile per contenere questo campo sul quale calcolare la differenza:

Codice:
Dim Sessione1 As String
Dim Sessione2 As String

' apro la connessione al db.....

Sessione1 = rs("sessione")
rs.movenext
Sessione2 = rs("sessione")

'dichiaro poi una variabile per la differenza ore:

Dim TotOre As Double

TotOre = DateDiff("s", Sessione1, Sessione2) / 3600
Ho provato come intervalli:

19/03/2005 07.30.00
19/03/2005 15.45.00

e dovrebbe quindi restituirmi 8.15 ore....

invece... me ne da 8.25

__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 18:17   #17
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Te l'ho detto devi fare una divisone intera... Per ottenere i minuti o prendi il resto della divisione per 60...

Dim Ore As Integer, Minuti As Integer

Ore = Secondi / 3600
Minuti = (Secondi Mod 3600) / 60
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 19:16   #18
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da cionci
Te l'ho detto devi fare una divisone intera... Per ottenere i minuti o prendi il resto della divisione per 60...

Dim Ore As Integer, Minuti As Integer

Ore = Secondi / 3600
Minuti = (Secondi Mod 3600) / 60
ma difatti è così

l'unica cosa che non ho capito come fare, è come prendermi il resto che mi viene tramite mod e sommarlo all'ora totale
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2005, 19:25   #19
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
ho fatto così ma mi pare troppo complesso:

Codice:
wd = DateDiff("s", dtDate, dtDate1) / 60 ' ottengo i minuti
wl = (wd / 60) ' ottengo le ore
wm = wd Mod 60 ' ottengo il resto che sono i miei minuti
wt = wl & "." & wm ' questo è il totale
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2005, 13:20   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Va bene così...nonc apisco cosa tu voglia ottenere... Ad esempio se hai 3 ore e 30 minuti vuoi ottenere 3,5 ?

In tal caso fai:

Dim res As Double

...
...
...

res = Ore + (Minuti / 60) * 100
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Il prezzo della Switch 2 potrebbe divent...
TikTok chiarisce il funzionamento della ...
Samsung Galaxy A07 5G: il nuovo entry le...
Realme 16 in arrivo: un mix tra iPhone A...
Domenica di follia su Amazon: iPhone 17 ...
Questo portatile HP OMEN con Core Ultra ...
Robot aspirapolvere al prezzo giusto: le...
Il nuovo M5 Max potrebbe avere una GPU p...
Pulizie automatiche al top (e a prezzo B...
Casa più calda, spese più leggere: Tado ...
Mini PC mostruoso in offerta nascosta su...
Netflix promette 45 giorni di esclusivit...
Gigabyte: un handheld? Sì, ma sol...
Samsung conferma l'arrivo di tre variant...
Sottile, veloce e con un'ottima autonomi...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v