Differenze tra le versioni di "Gmtime()"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
La funzione della libreria di C | La funzione della libreria di C | ||
struct tm *gmtime(const time_t *timer); | struct tm *gmtime(const time_t *timer); | ||
− | utilizza il valore puntato dalla funzione | + | utilizza il valore puntato dalla funzione "timer()" per riempire una struttura con i valori che rappresentano il tempo corrispondente, espressi in tempo universale coordinato (UTC) o GMT fuso orario. |
In Gambas, bisognerà innanzitutto dichiarare la prevista Struttura ''tm'': | In Gambas, bisognerà innanzitutto dichiarare la prevista Struttura ''tm'': | ||
Riga 17: | Riga 17: | ||
inoltre si dovrà dichiarare la fuzione ''gmtime()'' con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta: | inoltre si dovrà dichiarare la fuzione ''gmtime()'' con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta: | ||
Private <FONT color=#B22222>Extern gmtime</font>(time_p As Pointer) As Tm In "<FONT color=#B22222>libc:6</font>" | Private <FONT color=#B22222>Extern gmtime</font>(time_p As Pointer) As Tm In "<FONT color=#B22222>libc:6</font>" | ||
− | |||
Riga 43: | Riga 42: | ||
− | + | Public Sub Main() | |
Dim nunc As Pointer | Dim nunc As Pointer | ||
Riga 57: | Riga 56: | ||
Print "Orario: "; (tempus.tm_hour + 2) Mod 24; ":"; Format(tempus.tm_min, "00"); ":"; Format(tempus.tm_sec, "00") | Print "Orario: "; (tempus.tm_hour + 2) Mod 24; ":"; Format(tempus.tm_min, "00"); ":"; Format(tempus.tm_sec, "00") | ||
− | + | End |
Versione attuale delle 15:35, 14 giu 2024
La funzione della libreria di C
struct tm *gmtime(const time_t *timer);
utilizza il valore puntato dalla funzione "timer()" per riempire una struttura con i valori che rappresentano il tempo corrispondente, espressi in tempo universale coordinato (UTC) o GMT fuso orario.
In Gambas, bisognerà innanzitutto dichiarare la prevista Struttura tm:
Public Struct tm tm_sec As Integer ' secondi (0 - 59) tm_min As Integer ' minuti (0 - 59) tm_hour As Integer ' ore (0 - 23) tm_mday As Integer ' Giorno del mese (1 - 31) tm_mon As Integer ' Mese (1 - 12) tm_year As Integer ' Anno (numero di anni dal 1900) tm_wday As Integer ' Giorno della Settimana (0 - 6) tm_yday As Integer ' Giorno nell'Anno (0 - 365) tm_isdst As Integer ' ora legale End Struct
inoltre si dovrà dichiarare la fuzione gmtime() con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:
Private Extern gmtime(time_p As Pointer) As Tm In "libc:6"
Semplice esempio di uso in Gambas insieme con la funzione di C Time() per ottenere l'orario corrente:
Public Struct tm tm_sec As Integer ' secondi (0 - 59) tm_min As Integer ' minuti (0 - 59) tm_hour As Integer ' ore (0 - 23) tm_mday As Integer ' Giorno del mese (1 - 31) tm_mon As Integer ' Mese (1 - 12) tm_year As Integer ' Anno (numero di anni dal 1900) tm_wday As Integer ' Giorno della Settimana (0 - 6) tm_yday As Integer ' Giorno nell'Anno (0 - 365) tm_isdst As Integer ' ora legale End Struct Library "libc:6" ' time_t time(time_t *t) ' Poiché la funzione "time" ha lo steso nome della funzione "Time" i Gambas, le cambiamo nome, ' ma contestuamente dichiariamo il suo vero nome con "Exec": Private Extern Ora(t As Pointer) As Integer Exec "time" ' struct tm *gmtime(const time_t *timer) Private Extern gmtime(time_p As Pointer) As Tm Public Sub Main() Dim nunc As Pointer Dim tempus As New Tm ' Legge il corrente orario del sistema: ora(VarPtr(nunc)) ' Converte l'orario del sistema in GMT (ora UTC): tempus = gmtime(VarPtr(nunc)) ' Mostra l'orario corrente valido per l'Italia: Print "Orario: "; (tempus.tm_hour + 2) Mod 24; ":"; Format(tempus.tm_min, "00"); ":"; Format(tempus.tm_sec, "00") End