模板讨论:Year in various calendars

维基百科,自由的百科全书
跳到导航 跳到搜索
时间专题 (获评模板级、不适用重要度)
BadSalzdetfurthBadenburgerStr060529.jpg 本模板属于时间专题范畴,该专题旨在改善中文维基百科时间类内容。如果您有意参与,请浏览专题主页、参与讨论,并完成相应的开放性任务。
 模板页面模板  根据质量评级标准,本模板已评为模板级。

发现有模板发生错误[编辑]

刚才发现{{Year in other calendars}}的“中国农历”一项出现了“表达错误: 未能认得到的标点 "["”的红字,由于这个模板的结构复杂,我自己没有能力去修复,唯有在此求助。 —Quest for Truth (留言) 2009年2月6日 (五) 13:06 (UTC)

请问是哪个条目出错?!?a href="/wiki/User:PhiLiP" title="User:PhiLiP">菲菇@维基食用菌协会 2009年2月7日 (六) 02:13 (UTC)
2009年--Liangent留言 2009年2月7日 (六) 06:29 (UTC)
(:)回应,修好了。--Zanhsieh (留言) 2009年2月8日 (日) 16:51 (UTC)
我没看出来改了什么啊?--Liangent留言 2009年2月9日 (一) 02:38 (UTC)
(:)回应,这个模板本身没有问题,它依赖的模板 {{Chinese calendar/month/78/25}} 与 {{Chinese calendar/day/78/25}} 出了问题,前者在敝人修改前还未创建,后者内容完全照抄 {{Chinese calendar/day/78/24}} 的内容(正确的应该是采用英文版 {{Chinese calendar/day/78/25}})。这两个模板照英文版改好中文化就没事了。--Zanhsieh (留言) 2009年2月9日 (一) 15:02 (UTC)

Year in other calendars限制至少1986年的才能完全正常使用[编辑]

1984年在其他历法中的表示
公历 1984年1月27日
MCMLXXXIV
儒略历 1984年1月12日
罗马历 2737
亚美尼亚历 1433
?? ????
巴哈伊历 140 – 141
佛历 2528
科普特历 1700 – 1701
埃塞俄比亚历 1976 – 1977
希伯来历 5744 – 5745
印度历
 - Vikram Samvat 2039 – 2040
 - Shaka Samvat 1906 – 1907
 - Kali Yuga 5085 – 5086
全新世纪年 11984
伊朗历 1362 – 1363
伊斯兰历 1404 – 1405
日本纪年
 - 年号 昭和59年
 - 皇纪 皇纪2644年
檀君纪元 4317
泰国历 2527
中华民国纪年 73
主体纪年 73

模板:Year in other calendars有限制必须至少1986年的才能使用(农历部分会出错),可否请专家将它门槛设低?
农历部分:

{{ #expr: {{{year|{{CURRENTYEAR}}}}} + 2636 }}/{{ #expr: {{{year|{{CURRENTYEAR}}}}} + 2698 }}{{ #if: {{Chinese calendar/cycle|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}} | -{{ #ifexpr: {{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}} >= 0 | {{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}} | [[閏月|閏]] {{abs|{{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}}}}}}-{{Chinese calendar/day|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}} }}<br /><small>([[干支|{{Chinese calendar/year name|{{ #expr: ({{{year|{{CURRENTYEAR}}}}} + 55) mod 60 }}}}]]年{{ #if: {{Chinese calendar/cycle|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}} | {{Chinese calendar/month name|{{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}}}}月{{Chinese calendar/day name|{{Chinese calendar/day|{{JD|{{{year|{{CURRENTYEAR}}}}}|1|1}}}}}}日 }})</small><br /><div>  — 至 —</div>{{ #expr: {{{year|{{CURRENTYEAR}}}}} + 2637 }}/{{ #expr: {{{year|{{CURRENTYEAR}}}}} + 2697 }}{{ #if: {{Chinese calendar/cycle|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}} | -{{ #ifexpr: {{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}} >= 0 | {{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}} | [[閏月|閏]] {{abs|{{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}}}}}}-{{Chinese calendar/day|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}} }}<br /><small>([[干支|{{Chinese calendar/year name|{{ #expr: ({{{year|{{CURRENTYEAR}}}}} + 56) mod 60 }}}}]]年{{ #if: {{Chinese calendar/cycle|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}} | {{Chinese calendar/month name|{{Chinese calendar/month|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}}}}月{{Chinese calendar/day name|{{Chinese calendar/day|{{JD|{{{year|{{CURRENTYEAR}}}}}|12|31}}}}}}日 }})</small>

--Jason924tw留言) 2013年12月31日 (二) 10:36 (UTC)

似乎是Template:Chinese calendar/year、Template:Chinese calendar/month、Template:Chinese calendar/day有些子模板还没从英文维基搬过来?-Lif…lon 2013年12月31日 (二) 14:20 (UTC)
忘签名...。见右表的农历部分--Jason924tw留言) 2013年12月31日 (二) 17:46 (UTC)
从右边的例子可以看出以上代码解析时需要引用的模板之一是Template:Chinese calendar/day/78/0,但这个模板因为还没建立所以出现错误。对应的模板英文维基有en:Template:Chinese calendar/day/78/0。-Lif…lon 2014年1月1日 (三) 06:27 (UTC)
我从英语版复制贴上了,但仍有问题。其他小于1985年的也有许多需补充的模板需要大家帮忙。--Jason924tw留言) 2014年1月1日 (三) 13:13 (UTC)
我了解了,因为要把英文维基的那些子页面都搬过来才能使用前面那些年(英文有2,042子页面,现在中文有58个子页面),所以才把这门槛做这么高呀--Jason924tw留言) 2014年1月3日 (五) 15:24 (UTC)
可能是当初谁开始把模板搬过来的后来懒得继续了 = =-Lif…lon 2014年1月4日 (六) 05:07 (UTC)
我是来学习的,才知道还有这么强大的函数??上?5前的生日都无法表示,有点遗憾。希望大侠继续深入研究下去~ --greation 留言) 2014年1月8日 (三) 16:35 (UTC)
这东西该改用Lua吧。Liangent留言 2014年1月13日 (一) 16:04 (UTC)
使用 {{#ifexpr:{{#expr: {{{1|{{CURRENTYEAR}}}}} > 1985}}| 内容 }} 让他可以被隐藏好吗?--Jason924tw留言) 2014年1月15日 (三) 14:24 (UTC)
括号放错位置了吧。应该是“{{#ifexpr:{{#expr: {{{1|{{CURRENTYEAR}}}}}}} > 1985| 內容 }}”?-Lif…lon 2014年1月15日 (三) 17:10 (UTC)
使用 {{#ifexpr:{{#expr: {{{1|{{CURRENTYEAR}}}}} > 1985}}| 內容 }} 对吧,见Help:解析器函数、Help:计算。注:我也不大确定,请各位帮忙看看---Jason924tw留言) 2014年1月16日 (四) 08:48 (UTC)
似乎可以直接用{{#ifexpr:{{{1|{{CURRENTYEAR}}}}} > 1985| 內容 }},你说的好像也对--Jason924tw留言) 2014年1月16日 (四) 08:59 (UTC)
那个{{#expr:…}}的作用是把后面的变量变成数值以便运用,所以要包含的只是变量,关括号放在“1985”之后的话,{{{1}}}赋值为非数字的话(例如文字、符号)便会出错。-Lif…lon 2014年1月16日 (四) 14:06 (UTC)
你说的也是...虽然他本来就不该输入非数字... {{#ifexpr:{{#expr: {{{year|{{CURRENTYEAR}}}}}}} > 1985| 內容 }} --Jason924tw留言) 2014年1月16日 (四) 14:19 (UTC)
已经ifexpr了就不用单独再expr一次了。Liangent留言 2014年1月16日 (四) 15:20 (UTC)
{{#ifexpr: {{{year|{{CURRENTYEAR}}}}} > 1984| 內容 }} --Jason924tw留言) 2014年1月17日 (五) 12:07 (UTC)

关于里面的“佛历”纪年[编辑]

里面的“佛历”年是用 {{ #expr: {{{year|{{CURRENTYEAR}}}}}+544 }} 的计算方式,也就是西元年加上544,但佛历年跟西元年好像不是完全对应的关系,根据佛历#公历佛历换算章节:“佛历年 = 公历年 + 543,若过佛诞日印度历二月初八,农历四月初八。)再加1年”,目前的转换方式则是纯粹加上544而已,可能会转换错误。--61.224.234.237留言) 2015年4月4日 (六) 06:08 (UTC)

1911 之前的民国纪元[编辑]

比如 1908年 的中文页面,套入模板后会显示 民国纪元 -3,但按习惯算法,该年应该是 民国前 4 年。 英文页面就没有问题,显示成“Minguo calendar 4 before ROC / 民前4年”。

也许该修改一下模板内的函数? -Wayne Su 2015年10月14日 (三) 02:21 (UTC)