Module:Population clocks

--require "math"

local z = {}

function MJDN(date)

local floor = math.floor

local a = floor((14 - date.mon) / 12)

local y = date.year + 4800 - a

local m = date.mon + 12 * a - 3

return date.day + floor((153 * m + 2) / 5) + 365 * y + floor(y / 4) - floor(y / 100) + floor(y / 400) - 2432046

end

function dayssince(epoch, now)

return MJDN(now) - MJDN(epoch)

end

-- The population clock for India uses these data:

-- -- According to the 2011 census there were 1,21,01,93,422 people on 2011-03-01 00:00:00 +0530.

-- -- According to the 2011 census the 2001-2011 decadal growth rate was 17.64%.

-- Growth is slowing according to the census, so this is an OVER-estimate.

-- http://censusindia.gov.in/2011-prov-results/PPT_2.html

function z.india (frame)

local pframe = frame:getParent()

local args = pframe.args -- the arguments passed TO the template, in the wikitext that instantiates the template

local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself

local now = { year=config.as_of_year, mon=config.as_of_month, day=config.as_of_day }

return 1210193422 + 58455.12 * dayssince({year=2011,mon=2,day=28}, now)

end

return z