Module:Sandbox/DixonD/DateTemplates: Difference between revisions

Content deleted Content added
No edit summary
fix calls to _cleanNumber after changes to Module:Math
 
(9 intermediate revisions by one other user not shown)
Line 1:
local DateTime = require("Module:Sandbox/DixonD/Datetime");
local Math = require("Module:Math");
local Error = require('Module:Error')
 
local z = {}
Line 7 ⟶ 8:
local function getArgs(frame)
local args = frame.args;
if args[1] == nil then
-- if there are any arguments, then assume that we've got proper ones
local parent = frame:getParent();
for k,v in pairs(args) =do parent.args;
return args
end
return args
-- otherwise, return args from the parent
local parent = frame:getParent();
return parent.args;
end
 
local function isError(response)
return type(response) == 'string' and string.find(response, 'error');
end
 
Line 20 ⟶ 29:
local args = getArgs(frame);
return DateTime.julianDay(Math._cleanNumber(frame, args[1]),
Math._cleanNumber(frame, args[2]), Math._cleanNumber(frame, args[3]),
Math._cleanNumber(frame, args[4]), Math._cleanNumber(frame, args[5]),
Math._cleanNumber(frame, args[6]), 'g');
end
 
Line 30 ⟶ 39:
local args = getArgs(frame);
return DateTime.yearOfJulianDay(Math._cleanNumber(frame, args[1]), 'g');
end
 
-- [[Template:JULIANDAY.MONTH]]
function z.monthOfJulianDay(frame)
local args = getArgs(frame);
return DateTime.monthOfJulianDay(Math._cleanNumber(args[1]), 'g');
end
 
-- [[Template:JULIANDAY.DAY]]
function z.dayOfJulianDay(frame)
local args = getArgs(frame);
return DateTime.dayOfJulianDay(Math._cleanNumber(args[1]), 'g');
end
 
-- [[Template:JULIANDAY.HOUR]]
function z.hourOfJulianDay(frame)
local args = getArgs(frame);
return DateTime.hourOfJulianDay(Math._cleanNumber(args[1]), 'g');
end
 
-- [[Template:JULIANDAY.MINUTE]]
function z.minuteOfJulianDay(frame)
local args = getArgs(frame);
return DateTime.minuteOfJulianDay(Math._cleanNumber(args[1]), 'g');
end
 
-- [[Template:JULIANDAY.SECOND]]
function z.secondOfJulianDay(frame)
local args = getArgs(frame);
return DateTime.secondOfJulianDay(Math._cleanNumber(args[1]), 'g');
end
 
-- [[Template:JULIANDAY.JULIAN]]
function z.julianDayJulian(frame)
local args = getArgs(frame);
return DateTime.julianDay(Math._cleanNumber(frame, args.month[1]),
Math._cleanNumber(args[2]), Math._cleanNumber(args[3]),
Math._cleanNumber(args[4]), Math._cleanNumber(args[5]),
Math._cleanNumber(frame, args.day[6]), nil, nil, nil, 'gj');
end
 
Line 37 ⟶ 91:
local args = getArgs(frame);
local julianDaycurrentDate = DateTimeos.julianDaydate(Math._cleanNumber(frame, args.year'!*t'),;
Math._cleanNumber(frame, args.month),
local year = args.year == nil and currentDate.year or Math._cleanNumber(args.year);
Math._cleanNumber(frame, args.day), nil, nil, nil, 'g');
if year == nil then return Error.error{"Parameter ''year'' has wrong format!"}; end;
return julianDay;-- - 1721425;
local month = args.month == nil and currentDate.month or Math._cleanNumber(args.month);
if month == nil then return Error.error{"Parameter ''month'' has wrong format!"}; end;
local day = args.day == nil and currentDate.day or Math._cleanNumber(args.day);
if day == nil then return Error.error{"Parameter ''day'' has wrong format!"}; end;
local julianDay = DateTime.julianDay(year, month, day, nil, nil, nil, 'g');
if isError(julianDay) then return julianDay; end;
return julianDay;-- - 1721425;
end