精华内容
下载资源
问答
  •  计算公式:[YD+C]-L  公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。21世纪C值=3.87,22世纪C值=4.15。  举例说明:2058年立春日期的计算步骤[58×.0.2422+3.87]-[(58-1)/4]=17-14=3,则2月3日立春。 ...

    立春日期的计算
      计算公式:[YD+C]-L
      公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。21世纪C值=3.87,22世纪C值=4.15。
      举例说明:2058年立春日期的计算步骤[58×.0.2422+3.87]-[(58-1)/4]=17-14=3,则2月3日立春。
    雨水日期的计算 [Y
    D+C]-L
      公式解读:年数的后2位乘0.2422加18.74取整数减闰年数。21世纪雨水的C值18.73。
      举例说明:2008年雨水日期=[8×.0.2422+18.73]-[(8-1)/4]=20-1=19,2月19日雨水。
      例外:2026年计算得出的雨水日期应调减一天为18日。
    惊蛰日期的计算 [YD+C]-L
      公式解读:年数的后2位乘0.2422加5.63取整数减闰年数。21世纪惊蛰的C值=5.63。
      举例说明:2088年惊蛰日期=[88×.0.2422+5.63]-[88/4]=26-22=4,3月4日是惊蛰。
      例外:无。
    春分日期的计算 [Y
    D+C]-L
      公式解读:年数的后2位乘0.2422加20.646取整数减闰年数。21世纪春分的C值=20.646。
      举例说明:2092年春分日期=[92×.0.2422+20.646]-[92/4]=42-23=19,3月19日是春分。
      例外:2084年的计算结果加1日。
    清明节日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=4.81,20世纪=5.59。
      举例说明:2088年清明日期=[88×.0.2422+4.81]-[88/4]=26-22=4,4月4日是清明。
      例外:无。
    谷雨节日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=20.1,20世纪=20.888。
      举例说明:2088年谷雨日期=[88×.0.2422+20.1]-[88/4]=41-22=19,4月19日是谷雨。
      例外:无。
    立夏日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=5.52,20世纪=6.318。
      举例说明:2088年立夏日期=[88×.0.2422+5.52]-[88/4]=26-22=4,5月4日是立夏。
      例外:1911年的计算结果加1日。
    小满日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.04,20世纪=21.86。
      举例说明:2088年小满日期=[88×.0.2422+21.04]-[88/4]=42-22=20,5月20日小满。
      例外:2008年的计算结果加1日。
    芒种日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=5.678,20世纪=6.5。
      举例说明:2088年芒种日期=[88×.0.2422+5.678]-[88/4]=26-22=4,6月4日芒种。
      例外:1902年的计算结果加1日。
    夏至日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.37,20世纪=22.20。
      举例说明:2088年夏至日期=[88×.0.2422+21.37]-[88/4]=42-22=20,6月20日夏至。
      例外:1928年的计算结果加1日。
    小暑日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.108,20世纪=7.928。
      举例说明:2088年小暑日期= [88×0.2422+7.108]-[88/4]=28-22=6,7月6日是小暑。
      例外:1925年和2016年的计算结果加1日。
    大暑日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=22.83,20世纪=23.65。
      举例说明:2088年大暑日期= [88×0.2422+22.83]-[88/4]=44-22=22,7月22日大暑。
      例外:1922年的计算结果加1日。
    立秋日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.5,20世纪=8.35。
      举例说明:2088年立秋日期=[88×0.2422+7.5]-[88/4]=28-22=6,8月6日是立秋。
      例外:2002年的计算结果加1日。
    处暑日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=23.13,20世纪=23.95。
      举例说明:2088年处暑日期=[88×0.2422+23.13]-[88/4]=44-22=22,8月22日处暑。
      例外:无。
    白露日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.646,20世纪=8.44。
      举例说明:2088年白露日期=[88×0.2422+7.646]-[88/4]=28-22=6,9月6日是白露。
      例外:1927年的计算结果加1日。
    秋分日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=23.042,20世纪=23.822。
      举例说明:2088年秋分日期=[8×.0.2422+23.042]-[88/4]=44-22=22,9月22日是秋分。
      例外:1942年的计算结果加1日。
    寒露日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=8.318,20世纪=9.098。
      举例说明:2088年寒露日期=[88×0.2422+8.318]-[88/4]=29-22=7,10月7日是寒露。
      例外:无。
    霜降日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=23.438,20世纪=24.218。
      举例说明:2088年霜降日期=[88×0.2422+23.438]-[88/4]=44-22=22,10月22日霜降。
      例外:2089年的计算结果加1日。
    立冬日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.438,20世纪=8.218。
      举例说明:2088年立冬日期=[88×0.2422+7.438]-[88/4]=28-22=6,11月6日是立冬。
      例外:2089年的计算结果加1日。
    小雪日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=22.36,20世纪=23.08。
      举例说明:2088年小雪日期=[88×0.2422+22.36]-[88/4]=43-22=21,11月21日小雪。
      例外:1978年的计算结果加1日。
    大雪日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=7.18,20世纪=7.9。
      举例说明:2088年大雪日期=[88×0.2422+7.18]-[88/4]=28-22=6,12月6日大雪。
      例外:1954年的计算结果加1日。
    冬至日期的计算 [Y
    D+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.94,20世纪=22.60。
      举例说明:2088年冬至日期=[88×0.2422+21.94]-[88/4]=43-22=21,12月21日冬至。
      例外:1918年和2021年的计算结果减1日。
    小寒日期的计算 [YD+C]-L
      公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=5.4055,20世纪=6.11。
      举例说明:1988年小寒日期=[88×.0.2422+6.11]-[(88-1)/4]=27-21=6,1月6日小寒。
      例外:1982年计算结果加1日,2019年减1日。
    大寒日期的计算 [Y
    D+C]-L
      公式解读:Y=年数的后2位,D=0.2422,L=闰年数,21世纪C=20.12,20世纪C=20.84。
      举例说明:2089年大寒日期=[89×0.2422+20.12]-[(89-1)/4]=41-22=19,1月19日大寒。
      例外:2082年的计算结果加1日,20世纪无。

    展开全文
  • 夏至日计算公式及 三伏 的日期算法问题
                   

    今天是6月21日,农历夏至日,这一天为一年中白天最长,晚上最短。

    夏至日为二十四节气中最早确定下来的农历节气,为每年公历的6月20日、21、22日中的一天。用程序如何快速计算出来呢?

    算法公式:

    INT(Y * D + C) - L, 为简化记忆,使用:[Y * D + C] - L

    其中:Y=年数后2位,D=0.2422,L=闰年数;

    C:21世纪C=21.37,20世纪=22.20。

    [Y * D + C] 为取整数

    闰年数L=INT(Y/4)。
    这里:INT为取整数函数

    举例说明:

    今年是2017年,夏至日期 = [17 * 0.2422 + 21.37] - [17 / 4] =INT(25.4874) + INT(4.25) = 25 - 4 = 21

    2088年夏至日期=[88 × 0.2422 + 21.37] - [88 / 4] = 42 - 22 = 20,那么2088年,公历6月20日为夏至。


    三伏的日期算法:

    “三伏(Dog Day)”是初伏、中伏和末伏的统称,是一年中最热的时节。每年出现在阳历7月中旬到8月中旬。其气候特点是气温高、气压低、湿度大、风速小。“伏”表示阴气受阳气所迫藏伏地下。

    按我国阴历(农历)气候规律,前人早有规定:“夏至后第三个庚日开始为头伏(初伏),第四个庚日为中伏(二伏),立秋后第一个庚日为末伏(三伏),头伏和末伏各十天,中伏十天或二十天,“三伏”共三十天或四十天。

    今年的头伏是7月13日,除正常中伏外,还有一个闰中伏,所以今年的三伏有四十天。

               
    展开全文
  • 夏至日计算公式及“三伏”的日期算法问题 原文:夏至日计算公式及“三伏”的日期算法问题 今天是6月21日,农历夏至日,这一天为一年中白天最长,晚上最短。夏至日为二十四节气中最早确定...
    原文: 夏至日计算公式及“三伏”的日期算法问题

    今天是6月21日,农历夏至日,这一天为一年中白天最长,晚上最短。

    夏至日为二十四节气中最早确定下来的农历节气,为每年公历的6月20日、21、22日中的一天。用程序如何快速计算出来呢?

    算法公式:

    INT(Y * D + C) - L, 为简化记忆,使用:[Y * D + C] - L

    其中:Y=年数后2位,D=0.2422,L=闰年数;

    C:21世纪C=21.37,20世纪=22.20。

    [Y * D + C] 为取整数

    闰年数L=INT(Y/4)。
    这里:INT为取整数函数

    举例说明:

    今年是2017年,夏至日期 = [17 * 0.2422 + 21.37] - [17 / 4] =INT(25.4874) + INT(4.25) = 25 - 4 = 21

    2088年夏至日期=[88 × 0.2422 + 21.37] - [88 / 4] = 42 - 22 = 20,那么2088年,公历6月20日为夏至。


    三伏的日期算法:

    “三伏(Dog Day)”是初伏、中伏和末伏的统称,是一年中最热的时节。每年出现在阳历7月中旬到8月中旬。其气候特点是气温高、气压低、湿度大、风速小。“伏”表示阴气受阳气所迫藏伏地下。

    按我国阴历(农历)气候规律,前人早有规定:“夏至后第三个庚日开始为头伏(初伏),第四个庚日为中伏(二伏),立秋后第一个庚日为末伏(三伏),头伏和末伏各十天,中伏十天或二十天,“三伏”共三十天或四十天。

    今年的头伏是7月13日,除正常中伏外,还有一个闰中伏,所以今年的三伏有四十天。

    posted on 2018-07-26 17:07 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

    转载于:https://www.cnblogs.com/lonelyxmas/p/9372947.html

    展开全文
  • 题意简单,但是日期类题目计算有点麻烦。。。。 1.直接模拟。 题目中说‘今天’是2017年8月6日,星期日,我们要寻找下一个8月6日也是星期日的年份。 这里要分三种情况进行讨论。 1.1 若开始日期在在3月以后(包含3月...

    今夕何夕

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 1668    Accepted Submission(s): 594


    Problem Description
    今天是2017年8月6日,农历闰六月十五。

    小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。

    为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如今天是8月6日,星期日。下一个也是星期日的8月6日发生在2023年。

    小贴士:在公历中,能被4整除但不能被100整除,或能被400整除的年份即为闰年。
     

    Input
    第一行为T,表示输入数据组数。

    每组数据包含一个日期,格式为YYYY-MM-DD。

    1 ≤ T ≤ 10000

    YYYY ≥ 2017

    日期一定是个合法的日期

     

    Output
    对每组数据输出答案年份,题目保证答案不会超过四位数。
     

    Sample Input
      
    3 2017-08-06 2017-08-07 2018-01-01
     

    Sample Output
      
    2023 2023 2024
     

    Source


    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112

    题意简单,但是日期类题目计算有点麻烦。。。。

    1.直接模拟。

    题目中说‘今天’是2017年8月6日,星期日,我们要寻找下一个8月6日也是星期日的年份。

    这里要分三种情况进行讨论。

    1.1 若开始日期在在3月以后(包含3月,无论今年是平年还是闰年),则到下一年今天则会经过365天,星期数会向后推一天(365%7=1)

    1.2 若开始日期在2月29日,则到下一个2月29日至少要过4年。

    1.3 如开始日期在2月29日之前:

    1.3.1 若今年为闰年,则到明年今日要经过366天,否则为365天。


    AC代码1.

    模拟:

    /**
      * 行有余力,则来刷题!
      * 博客链接:http://blog.csdn.net/hurmishine
      * 个人博客网站:http://wuyunfeng.cn/
    */
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    const int maxn=1e1+5;
    int a[maxn];
    int getDay(int y)//年份天数
    {
        /**
        364/7=52
        */
        if(y%400==0||y%100!=0&&y%4==0)
            return 2;
        return 1;
    }
    int main()
    {
        //freopen("C:\\Users\\hncu_acm\\Desktop\\data.txt","r",stdin);
        int T;
        cin>>T;
        while(T--)
        {
            int y,m,d;
            scanf("%d-%d-%d",&y,&m,&d);
            int sum=0;
            if(m>2)
            {
                do
                {
                    y++;
                    sum+=getDay(y);
                    sum%=7;
                }
                while(sum);
            }
            else
            {
                if(m==2&&d==29)
                {
                    do
                    {
                        y++;
                        sum+=getDay(y);
                        sum%=7;
                        if(sum==0&&getDay(y)==2)
                            break;
                    }
                    while(true);
                }
                else
                {
                    do
                    {
                        sum+=getDay(y);
                        y++;
                        sum%=7;
                    }
                    while(sum);
                }
            }
            cout<<y<<endl;
        }
    
        return 0;
    }
    

    AC代码2:

    基姆拉尔森计算公式:

    W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
    在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方:
    把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。


    #include <iostream>
    #include <stdio.h>
    #include <string.h>
    #include <vector>
    #include <algorithm>
    #include <math.h>
    #include <queue>
    #define LL long long
    
    using namespace std;
    
    int year,month,day;
    
    bool isLeap(int x)
    {
        if((x%4==0&&x%100!=0)||x%400==0)
            return true;
        return false;
    }
    
    int cal(int y,int m,int d)
    {
        if(m<3)
        {
            m+=12;
            --y;
        }
        int W=(d+1+2*m+3*(m+1)/5+y+(y>>2)-y/100+y/400)%7;
        return W==0?7:W;
    }
    
    bool judge(int x)
    {
        //起始年是闰年,但是今年不是
        if(isLeap(year)&&!isLeap(x)&&(month==2&&day==29))
        {
            return true;
        }
        return false;
    }
    
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d-%d-%d",&year,&month,&day);
            int pos=cal(year,month,day);
            int kk;
            for(int i=year+1;; ++i)
            {
                kk=cal(i,month,day);
                if(judge(i)) continue;
                if(kk==pos)
                {
                    printf("%d\n",i);
                    break;
                }
            }
        }
        return 0;
    }
    

    AC代码3,

    蔡勒公式

    以1582年10月4日为例:
    1582年10月4日后:w = (d + 1+ 2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
    1582年10月4日前:w = (d+1+2*m+3*(m+1)/5+y+y/4+5) % 7;

    w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
    c:世纪(年份前两位数)
    y:年(后两位数)
    m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
    d:日


    AC代码:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <iostream>
    using namespace std;
    int is_run(int year)
    {
        if(year%400==0||(year%4==0&&year%100!=0))
            return 1;
        return 0;
    }
    
    int Zeller(int year,int month,int day)///蔡勒公式算星期
    {
        if (month==1||month==2)
        {
            year--;
            month+=12;
        }
        int c=year/100;
        int y=year-c*100;
        int week=(c/4)-2*c+(y+y/4)+(13*(month+1)/5)+day-1;
        while(week<0){week+=7;}
        week%=7;
        return week;
    }
    int main()
    {
        int year,month,day,T;
        scanf("%d",&T);
        while (T--)
        {
            scanf("%d-%d-%d",&year,&month,&day);
            int week=Zeller(year,month,day);
            int week2;
            if (month==2&&day==29)///如果输入为闰年的2月29号
            {
                for (int i=year+4;i<=9999;i+=4)///每四年枚举
                {
                    if (!is_run(i)) continue;///不是闰年就PASS
                    week2=Zeller(i,month,day);
                    if (week==week2)
                    {
                        printf("%d\n",i);
                        break;
                    }
                }
            }
            else
            {
                for (int i=year+1;i<=9999;i++)
                {
                    week2=Zeller(i,month,day);
                    if (week==week2)
                    {
                        printf("%d\n",i);
                        break;
                    }
                }
            }
        }
        return 0;
    }
    

    参考博客: http://blog.csdn.net/clx55555/article/details/77154461

    http://blog.csdn.net/exchan/article/details/77127039

    http://blog.csdn.net/qq_32792879/article/details/77140445

    测试数据:

    10
    2017-08-06
    2018-08-07
    2019-08-06
    2020-08-07
    2021-08-06
    2017-01-07
    2018-01-01
    2019-01-07
    2020-01-01
    2020-02-29
    2023
    2029
    2024
    2026
    2027
    2023
    2024
    2030
    2025
    2048



    展开全文
  • 根据当前获取得到的公历日期,如何得到它的阳历日期,规则或者有什么公式没?
  • 农历公式与原理以及农历日期运算 1. 农历的概述1 2. 如何在电脑程序里面计算农历??1 3. 农历公式2 4. 获取当日农历日历3 5. 历史日期公式加查表才能得到精确日期3 6. 参考4 1.农历的概述...
  • 输入公历日期获取农历日期,具体应用请自己修改。。
  • 预产期计算器生男生女预产期计算器生男生女,那么预测生男生女计算公式是怎么样的?计算的方法有下面的四种。有想要早点了解宝宝是男是女的准妈妈们就用生男生女计算器来算一下吧。1、 口诀计算法68+怀孕的农历月份...
  • 充值4折起Excel是我们经常使用的数据处理工具之一,我们有的时候会需要在表格中插入我们的日期,接下来小编就教大家怎么使用公式来插入日期,以及怎么更改日期的格式。具体如下:1. 首先我们打开电脑进入到桌面,...
  • 今夕何夕Problem Description今天是2017年8月6日,农历闰六月十五。小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个...
  • java计算农历日期

    2020-10-30 13:51:25
    util package com.clina.matron.util;/** * Created by primrose on 2020/10/30 */ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;... * @date 2
  • 基于时间戳的农历日历历法日期计算     1. 农历xx年的大小月份根据万年历查询1 2. 农历xx年1月1日的时间戳获取1 3. 计算当年的时间戳与农历日期的对应表,时间戳为key,日期为val1 4. 根据获取的时间戳...
  • 夏至日的计算公式

    千次阅读 2016-06-21 15:22:20
    夏至日并不固定在一年的阴历或阳历的...夏至日与具体的年份有关,一个近似的计算公式如下:⌊Y⋅D+C⌋−⌊Y4⌋ \left\lfloor Y\cdot D+C\right\rfloor-\left\lfloor \frac Y4\right\rfloorYY:年份的后两位, DD:常数
  • 冬至节令的计算公式

    2013-03-19 10:02:04
    冬至日期计算 [Y*D+C]-L 公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=21.94,20世纪=22.60。 举例说明:2088年冬至日期=[88×0.2422+21.94]-[88/4]=43-22=21,12月21日冬至。 例外:1918年和2021年的...
  • 农历计算方法--- (阳历转阴历)

    千次阅读 2018-05-20 11:56:30
    农历计算方法--- (阳历转阴历) 计算方法:【农历计算方法--- (阳历转阴历)
  • 今夕何夕Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 608 Accepted Submission(s): 178Problem Description 今天是2017年8月6日,农历闰六月十五。...
  • 星期、干支、二十八宿计算公式 - DELPHI 1. 求星期公式 星期=[5 A(实际天数)] mod 7 2. 干支计算公式 六十甲子干支序号,从1->59->0。 六十甲子干支序号=[23 A(实际天数)] mod 60 3. 二十八宿计算...
  • C#农历日期

    千次阅读 2017-08-05 15:17:52
    日期处理,是一个老生常谈的话题,几乎所有项目都需要涉及,要求也许不一样,有的需要计算周数,有的需要农历,有的需要计算节日…… 本人网上看了一些相关帖子,结合本人思路用C#将其重新封装,思路如下: 1 ...
  • 今天是2017年8月6日,农历闰六月十五。小度独自凭栏,望着一轮圆月,发出了“今夕何夕,见此良人”的寂寞感慨。为了排遣郁结,它决定思考一个数学问题:接下来最近的哪一年里的同一个日子,和今天的星期数一样?比如...
  • 现把此计算公式整理如下。 比如:2009/1/1转换为 Julian day 应为 2454833 (共7码 ) Code ///summary ///產生日期的Julianday ////summary ///paramname="year"年/param ///paramname="month"月/param ///param...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 504
精华内容 201
关键字:

农历日期计算公式