Modulo:Data/man
Questa è la pagina di documentazione per Modulo:Data
Modulo per eseguire operazioni sulle date.
Funzioni
[modifica]diff
[modifica]Questa funzione ritorna la differenza tra le date inserite tramite i parametri "inizio" e "fine" in una sola unità tra "anni", "mesi", "settimane", "giorni", "ore", "minuti" e "secondi". L'unità può essere specificata tramite il parametro "magnitudine", se non inserito viene utilizzata automaticamente l'unità più adatta. Il formato per le date è quello accettato dalla funzione parser #time.
- Uso
{{#invoke:Data|diff|inizio=data1|fine=data2}}
- Parametri
- inizio: data di partenza
- fine: data di arrivo, può essere successiva o anteriore a inizio, se anteriore verrà anteposto il segno "-" (meno) al risultato.
- magnitudine: l'unità da ritornare nel risultato, tra "anni", "mesi", "settimane", "giorni", "ore", "minuti" e "secondi". Se non inserita è utilizzata automaticamente la più adatta.
- magnitudine min: quando non è utilizzata magnitudine e il modulo utilizza automaticamente l'unità più adatta, serve per configurare l'unità minima da usare. Se per esempio "magnitudine min" viene impostata a "mesi" allora non verranno usate le unità minori (giorni, minuti e secondi) anche se queste fossero le più adatte. È utile quando il modulo è usato in un template: pur non conoscendo a priori le date che verranno utilizzate si può così stabilire una unità minima che verrà visualizzata.
- dir: se impostato a qualunque valore, esempio "dir=sì", nel risultato invece del segno verrà utilizzato il prefisso "tra" se positivo (esempio: "tra 1 mese") o verrà appeso "fa" se negativo (esempio "un mese fa").
- Esempi
{{#invoke:Data|diff|inizio=2016/01/01|fine=2016/02/10}}
ritornerà: 40 giorni{{#invoke:Data|diff|inizio=2016/01/01|fine=2016/02/10|magnitudine=mesi}}
ritornerà: 1 mese{{#invoke:Data|diff|inizio=2016/01/01|fine=2014/07/01}}
ritornerà: -18 mesi{{#invoke:Data|diff|inizio=2016/01/01|fine=2014/07/01|magnitudine=anni}}
ritornerà: -1 anno
Gli stessi esempi con dir=sì:
{{#invoke:Data|diff|inizio=2016/01/01|fine=2016/02/10|dir=sì}}
ritornerà: tra 40 giorni{{#invoke:Data|diff|inizio=2016/01/01|fine=2016/02/10|magnitudine=mesi|dir=sì}}
ritornerà: tra 1 mese{{#invoke:Data|diff|inizio=2016/01/01|fine=2014/07/01|dir=sì}}
ritornerà: 18 mesi fa{{#invoke:Data|diff|inizio=2016/01/01|fine=2014/07/01|magnitudine=anni|dir=sì}}
ritornerà: 1 anno fa
diff_ymd
[modifica]Questa funzione ritorna la differenza in anni, mesi e giorni tra le date inserite tramite i parametri "inizio" e "fine". Il formato per le date è quello accettato dalla funzione parser #time.
- Uso
{{#invoke:Data|diff_ymd|inizio=data1|fine=data2}}
- Parametri
- inizio: data di partenza
- fine: data di arrivo, può essere successiva o anteriore a inizio, se anteriore verrà anteposto il segno "-" (meno) al risultato.
- dir: se impostato a qualunque valore, esempio "dir=sì", nel risultato invece del segno verrà utilizzato il prefisso "tra" se positivo (esempio: "tra 1 mese e 1 giorno") o verrà appeso "fa" se negativo (esempio "un mese e un giorno fa").
- Esempi
{{#invoke:Data|diff_ymd|inizio=2016/01/01|fine=2015/01/01}}
ritornerà: -1 anno{{#invoke:Data|diff_ymd|inizio=2016/01/01|fine=2017/03/04}}
ritornerà: 1 anno, 2 mesi e 3 giorni{{#invoke:Data|diff_ymd|inizio=2016/01/01|fine=2012/12/31}}
ritornerà: -3 anni e 1 giorno
Gli stessi esempi con dir=sì:
{{#invoke:Data|diff_ymd|inizio=2016/01/01|fine=2015/01/01|dir=sì}}
ritornerà: 1 anno fa{{#invoke:Data|diff_ymd|inizio=2016/01/01|fine=2017/03/04|dir=sì}}
ritornerà: tra 1 anno, 2 mesi e 3 giorni{{#invoke:Data|diff_ymd|inizio=2016/01/01|fine=2012/12/31|dir=sì}}
ritornerà: 3 anni e 1 giorno fa
Utilizzo da un altro modulo
[modifica]Oltre che attraverso #invoke, il modulo può essere utilizzato tramite "require" da un altro modulo. È sufficiente inserire all'inizio del modulo:
local mData = require('Module:Data')
Le funzioni hanno gli stessi nomi ma con un underscore iniziale.
- Esempio
local mData = require('Modulo:Data')
local p = {}
function p.main(frame)
local diff1, diff2
-- utilizzo della funzione diff
diff1 = mData._diff( { inizio = '2016/01/01', fine = '2017/03/04', magnitudine = 'mesi' } )
-- utilizzo della funzione diff_ymd
diff2 = mData._diff_ymd( { inizio = '2016/01/01', fine = '2017/03/04' } )
return string.format('La differenza tra il 2016/01/01 e il 2017/03/04 è di %s, più precisamente di %s.', diff1, diff2)
end
return p
Unit test
[modifica]Unit test per questo modulo sono disponibili a Modulo:Data/test, per la loro esecuzione visitare Discussioni_modulo:Data/test.