Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Variabili e campi Date, con data e ora

Ho un vuoto di memoria e almeno un dubbio (non voglio ridar vita al
gettonatissimo tormentone):
Se scrivo, senza dimensionare nulla e senza Option Explicit (abbiamo già
dato), d, t, dt sono Variant, anzi saranno Variant/Date...
d = DateSerial(2003, 3, 6)
t = TimeSerial(10, 15, 20)
dt = DateSerial(2003, 3, 6) + TimeSerial(10, 15, 20)
... d, t, e dt sono da considerarsi variabili di tipo Date (Variant/Date) e,
soprattutto (in particolare dt, di cui non mi convince quel "+"), sono
tranquillamente e direttamente assegnabili a un campo di database di tipo
Date?
In altre parole (a parte il valore di dt e Now), se scrivo
"rs!campo_data=dt" è esattamente come scrivere "rs!campo_data=Now" ?
Grazie.

 "rs!campo_data=dt" č esattamente come scrivere "rs!campo_data=Now" ?
voto per il sě, ma conoscendoti mi suona strano il discorso....
--
Salutoni
Sergio

 voto per il sì, ma conoscendoti mi suona strano il discorso....
Ho fatto tutte le prove, ovviamente, e hanno avuto esito positivo, ma il
dubbio sta nel fatto di "sommare" una DateSerial con un TimeSerial. E' pur
vero che il "numero" corrispondente a una data con tempo mi sembra essere,
appunto, una somma dei due, ma non conoscendo come davvero avvenga
internamente (no, non ho letto a fondo la guida) tale somma, mi è venuto il
dubbio.
Se fosse intero (data) + decimale (tempo) è probabile che la TimeSerial
produca di suo un numero decimale (0,nnnnnn), se no non mi torna come la
data (dovrebbero essere "giorni trascorsi dal 30-12-1899") possa restare
invariata se le si somma  anche un'unità...
Nel frattempo ho riprovato (parrebbe confermare l'ipotesi di cui sopra):
dt=DateSerial(2003, 3, 6) + Timeserial (24, 3,0)
Ottiene un _7_/3/2003 00:03:00, ovvero somma 24 ore e 3 minuti

 ha scritto

coincidenze: in un prog per un amico ho aperta una tabella in cui alcune
righe hanno proprio un campo data vuoto da riempire a caso...
Private Sub Command1_Click()
    Dim d, t, dt
    d = DateSerial(2003, 3, 6)
    t = TimeSerial(10, 15, 20)
    dt = DateSerial(2003, 3, 6) + TimeSerial(10, 15, 20)
    Adodc1.Recordset!datains = dt
End Sub
gli piace moltissimo :)
ciao

 Ottiene un _7_/3/2003 00:03:00, ovvero somma 24 ore e 3 minuti
neanche tu hai voglia di leggere al guida eh?
Potrei fregarti incollando qua sotto un estratto della stessa, ma in questo modo
sarei costretto a leggerla io, e non ho voglia. Sto già leggendo troppo su
ado.net
, rischia di andarmi il cervello in pappa.
timeserial e dateserial lavorano con la stessa filosofia: un variant di tipo
date è un numero a virgola mobile, in cui l'intero sono i giorni trascorsi da
quella famosa data intesa come 0 (e per saperla dovrei aprire la guida, vedi
sopra), la parte frazionaria sono le oreminutisecondi.
Quindi timeserial ti ritornerà sempre una variant date correttamente impostata
secondo la logica di cui sopra.
Prova a fare
dim v as date
v = timeserial(15,22,43)
debug.print (v,"dd/mm/yyyy hh:mm:ss")
credo che questo chiarisca ogni dubbio...
O ne fa nascere altri :-)
--
Salutoni
Sergio


il che è giusto, dato che il timeserial del tuo valore è maggiore di 1, e
quell'uno è
un giorno che si va ad aggiungere al dateserial che nel tuo caso è 37686
--
bye BlackMagic
ICQ# 85485468

 O ne fa nascere altri :-)
La seconda che hai detto, perchè non va ... :-P :-P
Comunque, sì, 30-12-1899
Ora qualcuno (a.p potrà sfogliare qualche testo antico...) mi spieghi cos'è
accaduto di tanto importante in quella data, cioè perchè non il 31 o
addirittura il 1-1-1900 (beh, questo darebbe uno 0 e forse questo potrebbe
essere inteso come data non indicata)...

 non va ... :-P :-P
non ci credo.
Nella finestra immediata ti trovi scritto
30/12/1899 15:22:43
che è esattamente il risultato previsto. Se lo guardi come numero equivale a
0,qualcosa
--
Salutoni
Sergio

 30/12/1899 15:22:43
Sicuro? Senza Format?
Ciapalč: :-P :-P :-P

 Non ho il benchè minimo dubbio, Conte Masoch :-P
A parte gli scherzi, ho un enorme vantaggio nei tuoi confronti: il mio pane
quotidiano non dipende dal software.
Questo mi permette di giocare ad esplorare le tecniche nuove, senza preoccuparmi
di una loro immediata produttività, e imparare delle cose nuove è rimasto ormai
l'unico divertimento. In questo senso il .net, costringendo a rivedere dalle
basi l'approccio stesso al problema dell'implementazione di un progetto, è
estremamente divertente.
--
Salutoni
Sergio

*CSSoft* ha scritto:

Non ne dubito, seriamente. Se potessi trovarmi in una situazione simile alla
tua, senza polemica, ne sarei felice e, quindi, un po' (bonariamnte) ti
invidio.
Io amo ancora il mio lavoro (mi diverte ancora) e credo che questo sia una
caratteristica insita nell'informatica (più precisamente nella
programmazione), non nella ragioneria o finanza o ... qualsiasi (credo)
altra cosa.

 Sicuro? Senza Format?
'stard :-P
non posterò mai più estratti di codice, troppo elevata la probabilità di brutte
figure.
--
Salutoni
Sergio