作为21世纪的新青年,不会干支的程序员肯定不是一个好司机,中华文化源远流长,古代文明令人钦佩不已,十二地支对应十二个时辰(一个时辰等于两小时),又暗合十二生肖,每个生肖又对应着五行和阴阳属性,五行之中又相生相克,而天干同样有对应的五行阴阳,五行阴阳又暗合日月星辰和方位,利用占卜可以得吉凶,扯远了,再说下去估计就变成神棍了,言归正传, 天干地支组成形成了古代纪年历法。十天干和十二地支依次相配,组成六十个基本单位,两者按固定的顺序相互配合,组成了干支纪元法,为60甲子表,也就是几时几刻。
十大天干: 甲 乙 丙 丁 戊 己 庚 辛 壬 癸
对应编号: 1 2 3 4 5 6 7 8 9 10
十二地支: 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥
对应编号: 1 2 3 4 5 6 7 8 9 10 11 12
关于年支纪年法,百度是这样介绍的
protected void btnJudge_Click(object sender, EventArgs e) { //甲乙丙丁戊己庚辛壬癸 //子丑寅卯辰巳午未申酉戌亥 string[] G = { "甲","乙","丙","丁","戊","己","庚","辛","壬","癸" }; string[] Z = { "子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥" }; //獲取文本框值 string year =txtYear.Text.Trim().ToString(); string i = year.Substring(3,1); int Lasti = Convert.ToInt32(i); //計算年干 Lasti = Lasti > 3 ? Lasti - 3 : Lasti + 10 - 3; string YearG = G[Lasti-1]; //計算年支 int Lastz = Convert.ToInt32(year) % 12 + 9; Lastz = Lastz > 12 ? Lastz - 12 : Lastz; string YearZ = Z[Lastz-1]; string All = YearG + YearZ; Response.Write("<script>alert('"+All+"')</script>"); }
对于文本框输入值合不合法,则是在前台进行判断
<script type="text/javascript"> $(function () { $("#btnJudge").click(function () { var num = /\d/; var Year = parseInt($("#txtYear").val()); if (!num.test(Year)) { alert("請輸入一個合法年份"); return false; } else if (Year < 999 || Year > 9999) { alert("請輸入一個介於999~9999的年份"); return false; } }) }); </script>
对于月份的算法,这就比较复杂了,需要查询月干表,如现在还是丙申猴年的腊月,那么查下表可得,月支为 辛丑
然而在程序员的眼中,这只是一个二维数组而已,创建了此表,然后根据年干和月份来查询月支即可,仅此而已。
关于这些皮毛,个人只是兴趣爱好,中华文明,博大精深,而现代社会的高速发展,让身边的人都忙忙碌碌,或许是无暇顾及其它,让人不由得想起了那句:子在川上曰,逝者如斯夫