Module:DateThings: Difference between revisions

From JJSWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 40: Line 40:
--OutputText = OutputText .. trim(DateList[i])
--OutputText = OutputText .. trim(DateList[i])
OutputText = OutputText .. Year .. OutputSeparator .. Month .. OutputSeparator .. Day
--OutputText = OutputText .. Year .. OutputSeparator .. Month .. OutputSeparator .. Day
if Year==OldYear then
if Month==OldMonth then
OutputText = OutputText .. Day --Only the day is different
else
OutputText = OutputText .. Month .. "-" .. Day --Day and month are different
end
else
OutputText = OutputText .. Year .. "-" .. Month .. "-" .. Day --All three are different
end
OldYear = Year
OldMonth = Month
end
end



Revision as of 21:59, 1 December 2024

Documentation for this module may be created at Module:DateThings/doc

local p = {}

--Copied from https://stackoverflow.com/questions/1426954/split-string-in-lua
function mysplit(inputstr, sep)
  if sep == nil then
    sep = "%s"
  end
  local t = {}
  for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
    table.insert(t, str)
  end
  return t
end

function trim (s)
    return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end
    
function p.datesplit(frame)
	InputSeparator = ","
	OutputSeparator = "・"
	InputText = frame.args[1]
	
	DateList = mysplit(InputText,",")
	
	OutputText = ""
	OldYear = 0
	OldMonth = 0
	OldDay = 0
	
	for i, v in ipairs(DateList) do
		if i>1 then
			OutputText = OutputText .. OutputSeparator
		end
		
		DateBits = mysplit(DateList[i],"-")
		Year = DateBits[1]
		Month = DateBits[2]
		Day = DateBits[3]
		
		--OutputText = OutputText .. trim(DateList[i])
		--OutputText = OutputText .. Year .. OutputSeparator .. Month .. OutputSeparator .. Day
		
		if Year==OldYear then
			if Month==OldMonth then
				OutputText = OutputText .. Day --Only the day is different
			else
				OutputText = OutputText .. Month .. "-" .. Day --Day and month are different
			end
		else
			OutputText = OutputText .. Year .. "-" .. Month .. "-" .. Day --All three are different
		end
		
		OldYear = Year
		OldMonth = Month
	end

	--OutputText = Separator .. InputText .. Separator
	return OutputText
end





return p