Differenze tra le versioni di "Gmtime()"
Da Gambas-it.org - Wikipedia.
(Creata pagina con '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 rapp...') |
|||
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
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 16: | Riga 16: | ||
End Struct | 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: | 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 | + | Private <FONT color=#B22222>Extern gmtime</font>(time_p As Pointer) As Tm In "<FONT color=#B22222>libc:6</font>" |
− | |||
Riga 36: | Riga 35: | ||
<FONT color=Gray>' ''time_t time(time_t *t)'' | <FONT color=Gray>' ''time_t time(time_t *t)'' | ||
' ''Poiché la funzione "time" ha lo steso nome della funzione "Time" i Gambas, le cambiamo nome,'' | ' ''Poiché la funzione "time" ha lo steso nome della funzione "Time" i Gambas, le cambiamo nome,'' | ||
− | ' 'ma contestuamente dichiariamo il vero nome con "Exec":''</font> | + | ' ''ma contestuamente dichiariamo il suo vero nome con "Exec":''</font> |
Private Extern Ora(t As Pointer) As Integer Exec "time" | Private Extern Ora(t As Pointer) As Integer Exec "time" | ||
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