Modulo:Data/sandbox: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
+newFromDMY |
m Bot: rimuovo no globals obsoleto |
||
(3 versioni intermedie di un altro utente non mostrate) | |||
Riga 4:
]]
require('
local getArgs = require('Modulo:Arguments').getArgs
Riga 65:
end
-- Costruisce un oggetto Date a partire da una stringa nel formato
-- accettato dalla funzione parser #time.
function Date:new(str, precision)
local self = {}
Line 73 ⟶ 75:
end
-- Costruisce un oggetto Date a partire da una stringa nel formato:
function Date:newFromDMY(str)▼
-- "giorno mese_per_esteso anno" oppure "mese_per_esteso anno" oppure "anno".
local months = {
gennaio = 1, febbraio = 2, marzo = 3, aprile = 4, maggio = 5, giugno = 6,
Line 94 ⟶ 98:
end
-- Restituisce una stringa che rappresenta la data, senza l'ora.
function Date:getDateString()
local fmt = self.precision == 9 and 'Y' or
Line 101 ⟶ 106:
end
-- Restituisce un nuovo oggetto Date la cui data è avanzata del numero di giorni specificati.
function Date:addDays(days)
return Date:new('@' .. (self.ut + days * 86400))
end
-- Funzione di utilità per Date:diffYMD e Date:diff
-- Aggiunge un eventuale prefisso e suffisso al risultato invece del segno.▼
-- L'ultimo parametro diffVal è utilizzato solo da diff per evitare che▼
-- {{#invoke:Data|diff|inizio=2016/01/01|fine=2015/12/31|magnitudine=anni}} ritorni "-0 anni".▼
local ret▼
if dir then▼
else▼
end▼
return ret▼
end▼
-- Restituisce la differenza con la data date2 in anni, mesi e giorni.
function Date:diffYMD(date2, rawTable, dir)
local monthdays = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
Line 136 ⟶ 158:
end
return rawTable and ret or
end
Line 173 ⟶ 195:
end
--
▲-- Aggiunge un eventuale prefisso e suffisso al risultato invece del segno.
▲-- L'ultimo parametro diffVal è utilizzato solo da diff per evitare che
▲-- {{#invoke:Data|diff|inizio=2016/01/01|fine=2015/12/31|magnitudine=anni}} ritorni "-0 anni".
▲function Date:formatResult(result, d2, dir, diffVal)
▲ local ret
▲ if dir then
▲ -- ritorna il 'fa' anche con self.ut == d2.ut (si potrebbe configurare con un parametro)
▲ ret = self.ut < d2.ut and 'tra ' .. result or result .. ' fa'
▲ else
▲ ret = (self.ut <= d2.ut or diffVal == 0) and result or '-' .. result
▲ end
▲ return ret
▲end
▲-- Ritorna la differenza tra le date d1 e d2 (Unix time) in solo una tra le unità:
-- anni, mesi, settimane, giorni, ore, minuti e secondi.
function Date:diff(
local diff, ret, val, result
diff = self:diffYMD(
magnitudine = magnitudine or getMagnitudine(diff, magnitudine_min)
Line 213 ⟶ 221:
end
return
end
|