Easter 复活节(拉丁语:Pascha)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | //https://zh.wikipedia.org/wiki/%E5%BE%A9%E6%B4%BB%E7%AF%80%E7%9A%84%E8%A8%88%E7%AE%97 //Meeus/Jones/Butcher算法(公历) //Jean Meeus在他的书《天文算法》(Astronomical Algorithms,1991年)记载了这个计算公历中的复活节日期的方法,并指这个方法是来自Spencer Jones的书《一般天文学》(General Astronomy,1922年)和《英国天文学会期刊》(Journal of the Brithish Astronomical Association,1977年),后者指方法是来自Butcher's Ecclesiastical Calendar(1876年)。 //这个方法的优点是不用任何表也没有例外的情况。注意这里用的是整数除法,7/2=3非3.5。 /// <summary> /// CSharp 复活节算法 /// Meeus/Jones/Butcher算法(公历) /// geovindu Edit /// </summary> /// <param name="Y">公历年</param> /// <returns></returns> public string EcclesiasticalCalendar( int Y) { string ymd = string .Empty; int a, b, c, d, e, f, g,h,i,k,l,m,month,day; a = Mod(Y, 19); //a = Y mod 19 b = Y / 100; //b = Y / 100 c = Mod(Y, 100); //c = Y mod 100 d = 20 / 4; //d = b / 4 e = Mod(b, 4); //e = b mod 4 f=(b + 8) / 25; //f = (b + 8) / 25 g = (b - f + 1) / 3; //g = (b - f + 1) / 3 h = Mod((19 * a + b - d - g + 15), 30); //h = (19 * a + b - d - g + 15) mod 30 i = c / 4; //i = c / 4 k = Mod(c, 4); //k = c mod 4 l = Mod((32 + 2 * e + 2 * i - h - k),7); //l = (32 + 2 * e + 2 * i - h - k) mod 7 m = (a + 11 * h + 22 * l) / 451; //m = (a + 11 * h + 22 * l) / 451 month = (h + l - 7 * m + 114) / 31; //month = (h + l - 7 * m + 114) / 31 day = Mod((h + l - 7 * m + 114),31)+1; //day = ((h + l - 7 * m + 114) mod 31) + 1 ymd = Y.ToString() + "-" + month.ToString() + "-" + day.ToString(); // this.Literal1.Text = "<br/>a=" + a.ToString() + ";<br/>b=" + b.ToString() + ";<br/>c=" + c.ToString() + ";<br/>d=" + d.ToString() + ";<br/>e=" + e.ToString() + ";<br/>f=" + f.ToString() + ";<br/>g=" + g.ToString() + ";<br/>h=" + h.ToString() + ";<br/>i=" + i.ToString() + ";<br/>k=" + k.ToString() + ";<br/>l=" + l.ToString() // + ";<br/>m=" + m.ToString() + ";<br/>month=" + month.ToString() + ";<br/>day=" + day.ToString(); return ymd; } /// <summary> /// 取余运算(Complementation)和取模运算(Modulo Operation) /// </summary> /// <param name="n"></param> /// <param name="m"></param> /// <returns></returns> public static int Mod( int n, int m) { return ((n % m) + m) % m; } |
js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | //JavaScript 算复活节,返回年,月,日 geovindu eidt function cclesiastical(Y) { var ymd; var a, b, c, d, e, f, g,h,i,k,l,m,month,day; a = Y%19; //a = Y mod 19 b = Y / 100; //b = Y / 100 c = Y%100; //c = Y mod 100 d = 20 / 4; //d = b / 4 e = b%4; //e = b mod 4 f=(b + 8) / 25; //f = (b + 8) / 25 g = (b - f + 1) / 3; //g = (b - f + 1) / 3 h = (19 * a + b - d - g + 15)%30; //h = (19 * a + b - d - g + 15) mod 30 i = c / 4; //i = c / 4 k = c% 4; //k = c mod 4 l = (32 + 2 * e + 2 * i - h - k)%7; //l = (32 + 2 * e + 2 * i - h - k) mod 7 m = (a + 11 * h + 22 * l) / 451; //m = (a + 11 * h + 22 * l) / 451 month = (h + l - 7 * m + 114) / 31; //month = (h + l - 7 * m + 114) / 31 day = ((h + l - 7 * m + 114)%31)+1; //day = ((h + l - 7 * m + 114) mod 31) + 1 ymd = Y.toString() + "-" + month.toString() + "-" + day.toString(); return ymd; } |
哲学管理(学)人生, 文学艺术生活, 自动(计算机学)物理(学)工作, 生物(学)化学逆境, 历史(学)测绘(学)时间, 经济(学)数学金钱(理财), 心理(学)医学情绪, 诗词美容情感, 美学建筑(学)家园, 解构建构(分析)整合学习, 智商情商(IQ、EQ)运筹(学)生存.---Geovin Du(涂聚文)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步