Successivo: Funzione readfile, Precedente: Funzione join, Su: Funzioni di tipo generale [Contenuti][Indice]
Le funzioni systime()
e strftime()
descritte nella
Funzioni per gestire marcature temporali
forniscono la funzionalità minima necessaria per visualizzare l’ora del giorno
in una forma intelligibile. Sebbene strftime()
offra un’ampia gamma di
formattazioni, i formati di controllo non sono facili da ricordare o
intuitivamente ovvii quando si legge un programma.
La seguente funzione, getlocaltime()
, riempie un vettore fornito
dall’utente con informazioni sul tempo preformattate. Restituisce una stringa
con data e ora corrente formattata come nel programma di utilità date
:
# getlocaltime.awk --- ottiene l'ora del giorno in un formato usabile # Restituisce una stringa nel formato dell'output di date(1) # Riempie l'argomento del vettore time con valori individuali: # time["second"] -- secondi (0 - 59) # time["minute"] -- minuti (0 - 59) # time["hour"] -- ore (0 - 23) # time["althour"] -- ore (0 - 12) # time["monthday"] -- giorno del mese (1 - 31) # time["month"] -- mese dell'anno (1 - 12) # time["monthname"] -- nome del mese # time["shortmonth"] -- nome breve del mese # time["year"] -- anno modulo 100 (0 - 99) # time["fullyear"] -- anno completo # time["weekday"] -- giorno della settimana (domenica = 0) # time["altweekday"] -- giorno della settimana (lunedì = 0) # time["dayname"] -- nome del giorno della settimana # time["shortdayname"] -- nome breve del giorno della settimana # time["yearday"] -- giorno dell'anno (0 - 365) # time["timezone"] -- abbreviazione del nome della zona di fuso orario # time["ampm"] -- designazione di AM o PM # time["weeknum"] -- numero della settimana, domenica primo giorno # time["altweeknum"] -- numero della settimana, lunedì primmo giorno function getlocaltime(ora, ret, adesso, i) { # ottiene data e ora una volta sola, # evitando chiamate di sistema non necessarie adesso = systime() # restituisce l'output in stile date(1) ret = strftime("%a %e %b %Y, %H.%M.%S, %Z", adesso) # clear out target array delete time # immette i valori, forzando i valori numerici # a essere numerici aggiungendo uno 0 time["second"] = strftime("%S", adesso) + 0 time["minute"] = strftime("%M", adesso) + 0 time["hour"] = strftime("%H", adesso) + 0 time["althour"] = strftime("%I", adesso) + 0 time["monthday"] = strftime("%d", adesso) + 0 time["month"] = strftime("%m", adesso) + 0 time["monthname"] = strftime("%B", adesso) time["shortmonth"] = strftime("%b", adesso) time["year"] = strftime("%y", adesso) + 0 time["fullyear"] = strftime("%Y", adesso) + 0 time["weekday"] = strftime("%w", adesso) + 0 time["altweekday"] = strftime("%u", adesso) + 0 time["dayname"] = strftime("%A", adesso) time["shortdayname"] = strftime("%a", adesso) time["yearday"] = strftime("%j", adesso) + 0 time["timezone"] = strftime("%Z", adesso) time["ampm"] = strftime("%p", adesso) time["weeknum"] = strftime("%U", adesso) + 0 time["altweeknum"] = strftime("%W", adesso) + 0 return ret }
Gli indici di stringa sono più facili da usare e leggere rispetto ai
vari formati
richiesti da strftime()
. Il programma alarm
illustrato in
Un programma di sveglia
usa questa funzione.
Una progettazione più generica della funzione getlocaltime()
avrebbe permesso all’utente di fornire un valore di data e ora
opzionale da usare al posto della data/ora corrente.
Successivo: Funzione readfile, Precedente: Funzione join, Su: Funzioni di tipo generale [Contenuti][Indice]