İçeriğe atla

Modül:Zaman: Revizyonlar arasındaki fark

Vikipedi, özgür ansiklopedi
[kontrol edilmiş revizyon][kontrol edilmiş revizyon]
İçerik silindi İçerik eklendi
düz.
düz.
11. satır: 11. satır:
function ayarlaMO(yil)
function ayarlaMO(yil)
return bulvedeg(yil, "-([%d])", "MÖ %1")
return bulvedeg(yil, "-([%d])", "MÖ %1")
end

function temizle(yil)
local son = bulvedeg(yil, "^MÖ ", "-")
son = bulvedeg(son, "l[ea]r$", "")
son = bulvedeg(son, ". yüzyıl", "")
son = bulvedeg(son, ". binyıl", "")
return son
end
end


61. satır: 70. satır:
function ONYIL(frame)
function ONYIL(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
local args = frame.args[1] and frame.args or frame:getParent().args
return ayarlaMO(onYil(args[1], args[2]))
return ayarlaMO(onYil(temizle(args[1]), args[2]))
end
end


function YUZYIL(frame)
function YUZYIL(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
local args = frame.args[1] and frame.args or frame:getParent().args
return ayarlaMO(yuzYil(args[1], args[2]))
return ayarlaMO(yuzYil(temizle(args[1]), args[2]))
end
end


function BINYIL(frame)
function BINYIL(frame)
local args = frame.args[1] and frame.args or frame:getParent().args
local args = frame.args[1] and frame.args or frame:getParent().args
return ayarlaMO(binYil(args[1], args[2]))
return ayarlaMO(binYil(temizle(args[1]), args[2]))
end
end



Sayfanın 03.49, 18 Ocak 2021 tarihindeki hâli

Modül belgelemesi[gör] [değiştir] [geçmiş] [temizle]
--bu fonksiyon girilen bir yazıda birinci değeri bulup
--onu ikinci değer ile değiştirmeye yarar
local function bulvedeg(yazi, bir, iki)
	return mw.ustring.sub(mw.ustring.gsub(yazi, bir, iki), 1, -1)
end

--yerelde kod kısaltmak için
local bul = mw.ustring.find

function ayarlaMO(yil)
	return bulvedeg(yil, "-([%d])", "MÖ %1")
end

function temizle(yil)
	local son = bulvedeg(yil, "^MÖ ", "-")
	son = bulvedeg(son, "l[ea]r$", "")
	son = bulvedeg(son, ". yüzyıl", "")
	son = bulvedeg(son, ". binyıl", "")
	
	return son
end

--bu fonksiyon girilen bir yılın bulunduğu on yılı saptayarak
--onun çıktısını verir, mesela 2019 girilirse 2010
--1888 girilirse de 1880 çıktısını verir
function onYil(yil, arti)
	local tire = bul(yil, "^-") and "-" or nil
	local oy = bulvedeg(yil, "^-", "")
	local bas = string.len(oy) == 1 and "0" or mw.ustring.sub(oy, 1, -2) .. 0
	--eğer yılın sondan bir önceki sayısı "1,3,4,6,9" ise
	--lar eki kullanılacak, bunların dışında ler
	local harf = (bul(bas, "[13469][%d]$") or bas == "0") and "a" or "e"
	--ve eğer yılın bulunduğu onyılı bulmak istiyorsak son rakamı
	--her zaman 0 isteriz, mesela 2015 yılı giriliyse bu yıl,
	--2010 onyılına aittir
	
	local hesap = (tire and tire or "") .. bas
	
	if arti then return onYil(hesap+arti) else return hesap .. "'l" .. harf .. "r" end
end

function yuzYil(yil, arti)
	local tire = bul(yil, "^-") and "-" or nil
	yy = bulvedeg(yil, "^-", "")
	local bas = (string.len(yy) == 1 or string.len(yy) == 2) and 1 or tonumber(mw.ustring.sub(yy, 1, -3)+1)
	
	local hesap = (tire and tire or "") .. tostring(bas)
	
	if arti then return hesap+arti .. ". yüzyıl" else return hesap .. ". yüzyıl" end
end

function binYil(yil, arti)
	local tire = bul(yil, "^-") and "-" or nil
	local by = bulvedeg(yil, "^-", "")
	local ilk = mw.ustring.sub(by, 1, 1)
	local son = mw.ustring.sub(by, -1)
	
	local sonuc = (string.len(by) ~= 1 and son ~= "0") and tonumber(ilk)+1 or tonumber(ilk)
	sonuc = string.len(by) == 1 and 1 or sonuc
	
	local hesap = (tire and tire or "") .. tostring(sonuc)
	
	if arti then return hesap+arti .. ". binyıl" else return hesap .. ". binyıl" end
end

function YIL(frame)
end

function ONYIL(frame)
	local args = frame.args[1] and frame.args or frame:getParent().args
	return ayarlaMO(onYil(temizle(args[1]), args[2]))
end

function YUZYIL(frame)
	local args = frame.args[1] and frame.args or frame:getParent().args
	return ayarlaMO(yuzYil(temizle(args[1]), args[2]))
end

function BINYIL(frame)
	local args = frame.args[1] and frame.args or frame:getParent().args
	return ayarlaMO(binYil(temizle(args[1]), args[2]))
end

return {onYil = onYil, yuzYil = yuzYil, binYil = binYil, ayarlaMO = ayarlaMO,
	YIL = YIL, ONYIL = ONYIL, YUZYIL = YUZYIL, BINYIL = BINYIL}