Module:DafYomi
Appearance
![]() | This module is rated as ready for general use. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by sandbox testing rather than repeated trial-and-error editing. |
Usage
{{#invoke:DafYomi|today}}
{{#invoke:DafYomi|date|month=7|day=31|year=2020}}
{{#invoke:DafYomi|today|format=''daf'' %d of Tractate ''%m''}}
{{#invoke:DafYomi|date|month=7|day=31|year=2020|format=''[[%m (Talmud)|%m]]'', page %d}}
local p = {}
function p.today (frame)
return fromDate(os.date("!*t"))
end
function p.date (frame)
return fromDate(frame.args)
end
function fromDate (dat)
return mas_daf(dat).mas + " " + (mas_daf.daf + 1)
end
function mas_daf (dat)
dat.hour = 0
dat.min = 0
dat.sec = 0
dat = os.time(dat)
local date0 = os.time({year=2005,month=2,day=28,hour=0,min=0,sec=0})
local sinceS = dat-date0 + 200
local sinceD = math.floor(sinceS / 86400)
local days = sinceD % 2711 + 1
if (days <= 63) then return {mas='Berakhot',daf=days} end
days = days - 63
if (days <= 156) then return {mas='Shabbat',daf=days} end
days = days - 156
if (days <= 104) then return {mas='Eruvin',daf=days} end
days = days - 104
if (days <= 120) then return {mas='Pesachim',daf=days} end
days = days - 120
if (days <= 21) then return {mas='Shekalim',daf=days} end
days = days - 21
if (days <= 87) then return {mas='Yoma',daf=days} end
days = days - 87
if (days <= 55) then return {mas='Sukkah',daf=days} end
days = days - 55
if (days <= 39) then return {mas='Beitza',daf=days} end
days = days - 39
if (days <= 34) then return {mas='Rosh Hashanah',daf=days} end
days = days - 34
if (days <= 30) then return {mas="Ta'anit",daf=days} end
days = days - 30
if (days <= 31) then return {mas='Megillah',daf=days} end
days = days - 31
if (days <= 28) then return {mas="Mo'ed Katan",daf=days} end
days = days - 28
if (days <= 27) then return {mas='Chagigah',daf=days} end
days = days - 27
if (days <= 121) then return {mas='Yevamot',daf=days} end
days = days - 121
if (days <= 111) then return {mas='Ketubot',daf=days} end
days = days - 111
return sinceD
end
return p