复活节日期计算 算法C++实现


复活节的月份( 1-12 )和日期。如果没有给出任何参数,给出的结果是当前的一年。这是 在CoffeeScript匿名公历算法实现的。

gregorianEaster = (year = (new Date).getFullYear()) ->
  a = year % 19
  b = ~~(year / 100)
  c = year % 100
  d = ~~(b / 4)
  e = b % 4
  f = ~~((b + 8) / 25)
  g = ~~((b - f + 1) / 3)
  h = (19 * a + b - d - g + 15) % 30
  i = ~~(c / 4)
  k = c % 4
  l = (32 + 2 * e + 2 * i - h - k) % 7
  m = ~~((a + 11 * h + 22 * l) / 451)
  n = h + l - 7 * m + 114
  month = ~~(n / 31)
  day = (n % 31) + 1
  [month, day]

以西欧算法(现代算法)实现,计算1900~2099年的复活节日期C++实现

#include<iostream>
using namespace std;
//西欧教会算法
void Easter_Day(int y)
{
    if(y<1900)
        cout<<"年份小于算法"<<endl;
    else if(y>2099)
        cout<<"年份大于算法"<<endl;
    else
    {
        int a=y % 19;
        int b=y / 100;
        int c=y % 100;
        int d=b / 4;
        int e=b % 4;
        int f=(b+8) / 25;
        int g=(b-f+1) / 3;
        int h=(19*a+b-d-g+15) % 30;
        int i=c / 4;
        int k=c % 4;
        int l=(32+2*e+2*i-h-k) % 7;
        int m=(a+11*h+22*l) / 451;
        int n=(h+l-7*m+114) / 31;
        int p=(h+l-7*m+114) % 31;
        cout<<y<<"年复活节在"<<n<<"月"<<p+1<<"日"<<endl;
    }

}
using namespace std;

int main(void)
{
    int y;
    while(cin>>y)
    {
        Easter_Day(y);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值