Convertire data ed orario da formato Date in un numero

Da Gambas-it.org - Wikipedia.

La conversione di una data e un orario rappresentati nel tipo di dati Date(ossia: "giorno/mese/anno ore:minuti:secondi") locale in un valore numerico può avvenire in alcuni modi.

Conversione di data ed orario, contenuti in una variabile di tipo Date, in un numero in virgola mobile

In questo caso la conversione avverrà usando la funzione nativa "CFloat()", e sarà restituito un valore in virgola mobile che rappresenta a sinistra della virgola i giorni trascorsi dal primo numero di giorni dall'epoca di Gambas (un giorno arbitrario risalente a circa 8000 anni a.C.) e a destra della virgola i millesimi di secondo trascorsi dalle ore 00:00 del giorno corrente.

Public Sub Main()

 Print CFloat(Now)

End


Conversione da data/orario in numero intero corrispondente

In quest'altro caso la data e l'orario vengono convertiti nel esatto numero intero corrispondente.

Se la data/orario sono quelli correnti, allora si potrà utilizzare la seguente riga:

 Print Val(Format(Now, "ddmmyyyy")), Val(Format(Now, "hhnnss"))

Qualora si volesse trasformare questi i valori ottenuti della data e dell'orario in un unico valore in virgola mobile, si potrà fare come segue:

 Print Val(Format(Now, "ddmmyyyy")) + (Val(Format(Now, "hhnnss")) * 1E-6)


Se però la data non è quella corrente, allora si potrà utilizzare la seguente riga impostando la data in una stringa da convertire in tipo di dati Date, da passare successivamente alla funzione "Format()", e quindi convertita in valore numerico con la funzione "Val()":

' Nel caso, rappresentato dal seguente esempio, la stringa della data, impostata nel secondo argomento della funzione nativa "Format()", dovrà essere impostata all'americana: mese/giorno/anno.
 Print Val(Format(CDate("08/21/1969"), "ddmmyyyy"))