DATE$ e DATE

In SuperBasic è possibile utilizzare la variabile di ambiente DATE$ che contiene la data e l’ora del sistema nel formato:
1991 May 06 18:18:44
Tale parametro può essere usato come variabile stringa o, in alternativa, si può usare per fare dei calcoli con le date.
E’ possibile passare un valore intero alla variabile d’ambiente contenente il numero di secondi che verranno aggiunti alla data iniziale di sistema (1/1/1961).
Per esempio PRINT DATE$(0) restituirà
1961 Jan 01 00:00:00 mentre PRINT DATE$(10) restituirà
1961 Jan 01 00:00:10. Va da sè che per calcolare per esempio un intervallo di giorni bisognerà sommare 86400 (che sono i secondi in un giorno) al valore intero dei giorni.
Per “scorporare” la data si può ricorrere alla funzione TO sulla stringa restituita dalla variabile DATE$. Ad esempio per ottenere l’anno, è possibile usare.
YEAR = DATE$ (1 TO 4)
Esiste inoltre un altra variabile di ambiente di tipo intero chiamata DATE che restituisce il numero di secondi trascorsi dal 1/1/1961 pertanto DATE$(DATE) restituirà la data corrente.
Ovviamente sfruttando opportunamente questa variabile di sistema possiamo calcolare esattamente intervalli di tempo in giorni (aggiungendo 86400 secondi per ogni giorno necessario al calcolo) senza dover ricorrere alla ricerca di giorni presenti in un mese, anni bisestili e quant’altro.
Infine, un’ultima funzionalità che viene incontro ai programmatori, è la possibilità di passare una matrice di 6 valori alla variabile DATE in modo da poterla trattare come una data di sistema.
In questo caso passando i parametri del tipo:
DATE(2029,1,19,3,14,7) verrà trattata come una data di sistema senza doverla convertire necessariamente in secondi. In questo caso è la data massima rappresentabile dal QL ovverosia il 19 Gennaio del 2029 alle 3:14 e 7 secondi dopodiché si ripartira con primo gennaio del 1961.