Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo
Abbiamo provato per diversi giorni una new entry del mercato italiano, la Gowow Ori, una moto elettrica da off-road, omologata anche per la strada, che sfrutta una pendrive USB per cambiare radicalmente le sue prestazioni
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design
OnePlus 15 nasce per alzare l'asticella delle prestazioni e del gaming mobile. Ma non solo, visto che integra un display LTPO 1,5K a 165 Hz, OxygenOS 16 con funzioni AI integrate e un comparto foto con tre moduli da 50 MP al posteriore. La batteria da 7.300 mAh con SUPERVOOC 120 W e AIRVOOC 50 W è la ciliegina sulla torta per uno smartphone che promette di offrire un'esperienza d'uso senza alcun compromesso
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: 1082
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


ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
AMD Ryzen 5 7500X3D: la nuova CPU da gaming con 3D V-Cache per la fascia media AMD Ryzen 5 7500X3D: la nuova CPU da gaming con ...
SONY BRAVIA 8 II e BRAVIA Theatre System 6: il cinema a casa in formato compatto SONY BRAVIA 8 II e BRAVIA Theatre System 6: il c...
Bonus Elettrodomestici 2025, si parte: c...
Jeff Bezos torna al comando, stavolta di...
Anthesi sceglie OVHcloud per digitalizza...
Cube presenta Trike Flatbed Hybrid 750, ...
Call of Duty Black Ops 7 peggio di Infin...
L'Italia è il secondo mercato per...
Wi-Fi superveloce anche in giardino? FRI...
La Ford Focus va ufficialmente in pensio...
Booking.com integra Revolut Pay: nasce i...
DGX Spark a 175 fps con ray tracing su C...
Red Dead Redemption 2 Enhanced è ...
3Dfx Voodoo 2, una GPU nata con la scade...
Apple Watch: la Mela dovrà versar...
TIM e Nokia insieme per potenziare il 5G...
Musk lancia la nuova era dei DM su X con...
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:57.


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