本周日,也就是4月24日,是今年的复活节,复活节(Easter),是纪念耶稣基督复活的节日,西方信基督教的国家都过这个节。
复活节的日期是不固定的在西方教会传统里,春分之后第一次满月之后的第一个星期日即为复活节。东方教会则规定,如果满月恰逢星期日,则复活节再推迟一周。因此,节期大致在3月22日至4月25日之间。复活节是最古老最有意义的基督教节日之一,庆祝的是基督的复活,世界各地的基督徒每年都要举行庆祝。
节日的算法也不劳大家去找了
特别注意:此次比赛没有奖品
未尽事宜可参考 http://www.itpub.net/viewthread.php?tid=977079&extra=page%3D5%26amp%3Bfilter%3Ddigest ,俺困了,今天先睡觉去了
[ 本帖最后由 lastwinner 于 2011-4-19 00:17 编辑 ]
复活节的日期是不固定的在西方教会传统里,春分之后第一次满月之后的第一个星期日即为复活节。东方教会则规定,如果满月恰逢星期日,则复活节再推迟一周。因此,节期大致在3月22日至4月25日之间。复活节是最古老最有意义的基督教节日之一,庆祝的是基督的复活,世界各地的基督徒每年都要举行庆祝。
节日的算法也不劳大家去找了
QUOTE:
现在有一个简便的算法供大家参考!现在提出比赛要求:
年份只限于1900年到2099年
1 设要求的那一年是Y年,从Y减去1900,其差记为N。
2 用19作除数去除N,余数记为A。
3 用4作除数去除N,不管余数,把商记为Q。
4 用19去除7A+1,把商记为B,不管余数。
5 用29去除11A+4-B,余数记为M。
6 用7去除N+Q+31-M,余数记为W。
7 计算25-M-W。
得出答数即可定出复活节的日期。若为正数,月份为4月,如为负数,月份为3月。若为0,则为3 月31日。
- 用最短的代码,求出2011~2099之间的复活节,具体为:
- Q1:2011~2099之间每一年的复活节的具体日期
- Q2:2011~2099之间,几月几号出现得最多?3月出现得最多的是几号?4月出现得最多的又是几号?分别出现了多少次?
- Q3:2011~2099之间的复活节,3月22日至4月25日之间哪些日子没有出现过?
- Q4:2011~2099之间“愚蛋节”的次数,即4月1日同时又是复活节的数量以及都在哪些年份出现。
- package声明为create or replace package easter
- Q1的声明为procedure showAllEasterDay,无参数,输出为一列表,形式如下所示:
YEAR DAY
2011 04-24
2012 04-08
………… - Q2的声明为procedure showMaxOccurenceEasterDay,无参数,输出为一行数据,日期后面跟着输出出现的次数,如果是多个日期,则按从小到达,用“/”分隔显示,形式如下所示:
MAXOCC MO_CNT MAXOCC_3 MO3_CNT MAXOCC_4 MO4_CNT
xx-xx x1 03-xx x2 04-xx/04-yy x3 - Q3的声明为procedure showLeapEasterDay,无参数,连续未出现的日期用一行显示,输出为一列表,形式如下所示:
ABSENT_START ABSENT_END
03-22 03-25
04-02 04-02
04-11 04-22
………………(以上为示例数据,并非真实数据) - Q4的声明为procedure showFoolEasterDay,无参数,输出为一列表,形式如下所示:
YEAR TOTAL
yyyy1 xx
yyyy2 xx
…………
yyyyn xx

未尽事宜可参考 http://www.itpub.net/viewthread.php?tid=977079&extra=page%3D5%26amp%3Bfilter%3Ddigest ,俺困了,今天先睡觉去了

[ 本帖最后由 lastwinner 于 2011-4-19 00:17 编辑 ]
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29867/viewspace-692800/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29867/viewspace-692800/