Modül:Zaman: Revizyonlar arasındaki fark
Görünüm
[kontrol edilmiş revizyon] | [kontrol edilmiş revizyon] |
İçerik silindi İçerik eklendi
HastaLaVi2 (mesaj | katkılar) düz. |
HastaLaVi2 (mesaj | katkılar) 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
--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}