Module:Date : Différence entre versions
Sauter à la navigation
Sauter à la recherche
| (7 révisions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 35 : | Ligne 35 : | ||
function date.u2p( du ) | function date.u2p( du ) | ||
| − | year = math.ceil((du.args[1] | + | year = math.ceil((du.args[1])/365.25)-4495 |
| − | day_year = du.args[1] | + | day_year = du.args[1] - math.ceil((year + 4494) * 365.25+0.25)+1 |
month = 1 + _if(day_year>31,1) + _if(day_year>61,1) | month = 1 + _if(day_year>31,1) + _if(day_year>61,1) | ||
+ _if(day_year>92,1) + _if(day_year>123,1) + _if(day_year>154,1) | + _if(day_year>92,1) + _if(day_year>123,1) + _if(day_year>154,1) | ||
| Ligne 74 : | Ligne 74 : | ||
i = tonumber(range.args[1]) | i = tonumber(range.args[1]) | ||
m = tonumber(range.args[1]) + tonumber(range.args[2]) | m = tonumber(range.args[1]) + tonumber(range.args[2]) | ||
| − | res = '<table style="border-spacing: 7px;">' | + | res = '<table style="border-spacing: 7px;" cellpadding="5">' |
while i < m do | while i < m do | ||
| − | |||
f = {} | f = {} | ||
f["args"] = {} | f["args"] = {} | ||
f.args[1] = i | f.args[1] = i | ||
p = tostring(date.u2p(f)) | p = tostring(date.u2p(f)) | ||
| − | |||
res = res..'<tr style="border: 1px solid black"><td style="border: 1px solid black">'..tostring(i)..'</td><td style="border: 1px solid black">'..p..'</td><td style="border: 1px solid black">'..tostring(date.u2i(f))..'</td></tr>' | res = res..'<tr style="border: 1px solid black"><td style="border: 1px solid black">'..tostring(i)..'</td><td style="border: 1px solid black">'..p..'</td><td style="border: 1px solid black">'..tostring(date.u2i(f))..'</td></tr>' | ||
| + | i = i +1 | ||
end | end | ||
res = res..'</table>' | res = res..'</table>' | ||
Version actuelle datée du 12 février 2019 à 15:33
local date = {}
function date.i2p( dt )
u = date.i2u(dt) dt.args[1] = u p = date.u2p(dt) return p
end
function date.p2i( dt )
u = date.p2u(dt) dt.args[1] = u i = date.u2i(dt) return i
end
function date.i2u( dt )
d = mw.text.split( dt.args[1], '/') day = tonumber(d[1]) week = tonumber(d[2]) season = tonumber(d[3]) year = tonumber(d[4]) u = math.floor((year-1)*365.25)+_if(season>1,8*12)+_if(season>2,89)+_if(season>3,89)+(week-1)*8+day+92 return u
end
function date.p2u( dt )
d = mw.text.split( dt.args[1], '/') day = tonumber(d[1]) month = tonumber(d[2]) year = tonumber(d[3]) u = math.floor((year+4495)*365.25)- 241 + day +(month-5)*30 + _if(month>6, 1) + _if(month>9 and year%4==1, 1) - _if(month<5, 1) - _if(month < 4, 1) - _if(month < 2, 1) return u
end
function date.u2p( du )
year = math.ceil((du.args[1])/365.25)-4495
day_year = du.args[1] - math.ceil((year + 4494) * 365.25+0.25)+1
month = 1 + _if(day_year>31,1) + _if(day_year>61,1)
+ _if(day_year>92,1) + _if(day_year>123,1) + _if(day_year>154,1)
+ _if(day_year>184,1) + _if(day_year>215,1) + _if(day_year>245,1)
+ _if(day_year>275,1) + _if(day_year>305 + _if((year%4)==1,1),1) + _if(day_year>335 + _if((year%4)==1,1),1)
day_month = day_year
- _if(month>1,31) - _if(month>2,30) - _if(month>3,31)
- _if(month>4,31) - _if(month>5,31) - _if(month>6,30)
- _if(month>7,31) - _if(month>8,30) - _if(month>9,30)
- _if(month>10,30 + _if((year%4)==1,1)) - _if(month>11,30)
day = day_month - _if(month==1, 1)-_if(month==3, 1)-_if(month==4, 1)-_if(month==5, 1)-_if(month==7, 1)-_if(month==10 and (year%4==1), 1)
dt = tostring(day)..'/'..tostring(month)..'/'..tostring(year)
return dt
end
function date.u2i( du )
year = math.ceil((du.args[1]-92)/365.25) day_year = math.ceil(du.args[1]-(year-1)*365.25-92) season = 1 + _if(day_year > 96,1) + _if(day_year > 96+89,1) + _if(day_year > 96+89+89, 1) day_season = day_year - _if(season > 1,96)- _if(season > 2,89) - _if(season > 3,89) week = math.floor((day_season-1)/8)+1 day_week = day_season - (week-1)*8 day = day_week dt = tostring(day)..'/'..tostring(week)..'/'..tostring(season)..'/'..tostring(year) return dt
end
function _if(b, a)
if b then
return a
else
return 0
end
end
function date.compare_date( range )
i = tonumber(range.args[1]) m = tonumber(range.args[1]) + tonumber(range.args[2])
res = '
' while i < m do f = {} f["args"] = {} f.args[1] = i p = tostring(date.u2p(f)) res = res..''i = i +1 endres = res..'
| '..tostring(i)..' | '..p..' | '..tostring(date.u2i(f))..' |
'
return res
end
return date