精华内容
下载资源
问答
  • var solarTerm = new Array("小寒","大寒",...//获取2013年第一个节气小寒的公历日期 var sterm = sTermDate(2013,0); var stdateStr = sterm.getFullYear()+"-"+(sterm.getMonth()+1)+"-"+sterm.getUTCDate();

    var  solarTerm  =  new  Array("小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")

    var  sTermInfo  =  new  Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343

    ,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)

     

    ===== 某年的第n个节气为几日(从0小寒起算)

    function sTermDate(y,n) {

       return new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000  ) + Date.UTC(1900,0,6,2,5) );

    }

     

    //获取2013年第一个节气小寒的公历日期

    var sterm = sTermDate(2013,0);

    var stdateStr = sterm.getFullYear()+"-"+(sterm.getMonth()+1)+"-"+sterm.getUTCDate();

    展开全文
  • 先算出该年所有的星期六星期日,根据节日日期,算出当天星期几,加相应的天数。 #include <iostream> #include <stdio.h> #include <string> #include <stdlib.h> #include <...

     

      先算出该年所有的星期六星期日,根据节日的日期,算出当天星期几,加相应的天数。

     

    #include <iostream>
    #include <stdio.h>
    #include <string>
    #include <stdlib.h>
    #include <string.h>
    
    using namespace std;
    int isrun(int y)//该年的天数
    {
        if(y%400==0||(y%100!=0&&y%4==0))
        {
            return 366;
        }
        return 365;
    }
    int yue(int y,int m,int r)//几年几月几日当天星期几
    {
        if(m<=2)
        {
            y--;
            m+=12;
        }
        int w=(r+2*m+3*(m+1)/5+y+y/4+y/400-y/100)%7+1;
        return w;
    }
    int main()
    {
        int y;
        cin>>y;
        int how[4][2];
        for(int i=0;i<4;i++)
        {
            cin>>how[i][0]>>how[i][1];
        }
        int whatday;
    
        cin>>whatday;
        int amount=0;
        int days=isrun(y);
        if(whatday==7||whatday==6)//如果第一周已经在星期天了,就直接获得该周的星期天数
        {
            amount+=7-whatday+1;
            days-=8-whatday;
        }
        else{
                amount+=1;//计算元旦当天是否不是周六日以外的节假日
            days+=whatday-1;//如果第一周没在星期天,把该星期补全
        }
        amount+=(days/7)*2;//算出这一年星期六星期天的个数
        if(days%7==6)
        {
            amount+=1;
        }//余下的几天若为6,说明最后一星期最后一天为星期六
        int what=yue(y,5,1);//五一是星期几,不再礼拜日就加一
        if(what<6)
        {
            amount++;
        }
        what=yue(y,10,1);//十一是星期几,若小于三,加三天,若星期日或星期四,加两天,剩下的加一天
        if(what<=3)
        {
            amount+=3;
        }
        else if(what==7||what==4)
        {
            amount+=2;
        }
        else if(what==5||what==6)
        {
            amount++;
        }
        what=yue(y,12,25);
        if(what<6)
        {
            amount++;
        }
        what=yue(y,how[0][0],how[0][1]);
        if(what<=3)
        {
            amount+=3;
        }
        else  if(what==7||what==4)
        {
            amount+=2;
        }
        else if(what==5||what==6)
        {
            amount++;
        }
        for(int i=1;i<4;i++)
        {
            what=yue(y,how[i][0],how[i][1]);
            if(what<6)
        {
            amount++;
        }
        }
        cout<<amount<<endl;//输入最后的节假日
        return 0;
    }
    

     

     

     

     

     

     

     

    展开全文
  • 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期一:总统节 5月的...

    1. 题目来源

    链接:美国节日
    来源:牛客网

    2. 题目说明

    和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:

    • 1月1日:元旦
    • 1月的第三个星期一:马丁·路德·金纪念日
    • 2月的第三个星期一:总统节
    • 5月的最后一个星期一:阵亡将士纪念日
    • 7月4日:美国国庆
    • 9月的第一个星期一:劳动节
    • 11月的第四个星期四:感恩节
    • 12月25日:圣诞节
      现在给出一个年份,请你帮忙生成当年节日的日期。

    输入描述:

    输入包含多组数据,每组数据包含一个正整数year(2000≤year≤9999)。

    输出描述:

    对应每一组数据,以“YYYY-MM-DD”格式输出当年所有的节日日期,每个日期占一行。
    每组数据之后输出一个空行作为分隔。

    示例:

    输入
    2014
    2013

    输出
    2014-01-01
    2014-01-20
    2014-02-17
    2014-05-26
    2014-07-04
    2014-09-01
    2014-11-27
    2014-12-25

    2013-01-01
    2013-01-21
    2013-02-18
    2013-05-27
    2013-07-04
    2013-09-02
    2013-11-28
    2013-12-25

    3. 题目解析

    题目表述很明白,难点在于我们要求一个月第N个星期W。那么面对这个问题,我们拆解的思路是,首先,我们要想找到一个月第N个星期W,一定需要一个参照物,最好的目标当然是这个月的第一天。拿到参照物后,我要能得到参照物的星期数,然后就能得到结果了。所以这个题有两个难点:判断某个月的1号到底是周几,然后根据这个星期数得到这个月第N个星期W。这两个功能写成函数,即可通过反复调用拿到结果。

    第一个难点是如何判断一天到底是周几。那么为了判断一天到底是周几,我们有以下两种手段:
    1、找个参照日,写一个日期计算器,算出两个天数之间的差值后对7取余数即可知道目标日期是星期几。
    2、通过蔡勒公式计算星期数:
    w = ( [ c 4 − 2 c + y + [ y 4 ] + [ 13 × ( m + 1 ) 5 + d − 1 ) M O D 7 w=([\frac{c}{4}-2c+y+[\frac{y}{4}]+[\frac{13\times{}(m+1)}{5}+d-1) {\rm MOD7} w=([4c2c+y+[4y]+[513×(m+1)+d1)MOD7
    公式中w就是计算出的星期;c是世纪,其值为真实的世纪数-1,也就是y / 100的结果;y是这是这个世纪的第几年,也就是y % 100;m是月,但是1月和2月要看做13月和14月计算;d是日。根据泰勒公式,我们只需要知道年月日,就可以算出星期。然而因为现行的格里历,所以在1582年之前的日期,我们要采用另一个公式,本题中用不到,可以参考百度百科:蔡勒公式-百度百科
    两个方法比较而言,肯定是方法2的代码更好写,所以我们就用蔡勒公式就好。
    第一个难点解决了,第二个难点,如何通过这个参照点拿到一个月的第N个星期W。

    那么,我们假设要拿到一个月的第一个周五,我们要怎么做呢?一个很简单的思路就是,先看看这个月的1号是周几,然后往后数就行了,假如1号是周四,那么2号就是第一个周五,假如1号是周六,那么7号就是第一个周五。

    那么怎么拿到这个向后的天数呢?我们发现,如果所求星期数比1号星期数大,那么直接相减后+1就是那一天了,例如1号周三,我要周五,那么(5-3)+1即可求出第一个周五是3号。那么反过来是所求星期数小,例如1号周三,我要周一,那么显然要先把周一看成周八才行。也就是(8-3)+1。第一个周一是6号。但是这样要判断,所以干脆统统都让它加7以后减,减完后的结果再mod一下7,就能得到结果了。也就是:(所求星期数 + 7 - 1号星期数) % 7 + 1。这样我们就拿到了求第一个周几公式。随后,我们只需要在这个公式上,加上7 * (n - 1),即刻求出第n个周几。而面对某个月的最后一个周几,我们要做的是拿到下个月的第一天然后往回推即可。公式跟上面的差不多。

    4. 代码展示

    // write your code here cpp
    #include <iostream>
    #include <cstdio>
    
    // 根据 年-月-日 通过蔡勒公式计算当前星期几
    // 1: 星期一 ... 7: 星期日
    int day_of_week(int year, int month, int day)
    {
        if (month == 1 || month == 2)
        {
            month += 12;
            year -= 1;
        }
     
        int century = year / 100;
        year %= 100;
        int week = year + (year / 4) + (century / 4) - 2 * century + 26 * (month + 1) / 10 + day - 
    1;
        week = (week % 7 + 7) % 7;
     
        if (week == 0)
        {
            week = 7;
        }
     
        return week;
    }
     
    int day_of_demand(int year, int month, int count, int d_of_week)
    {
        int week = day_of_week(year, month, 1); //求出1号星期数
        // 1 + 7(n - 1) + (所求星期数 + 7 - 1号星期数) % 7
        int day = 1 + (count - 1) * 7 + (7 + d_of_week - week) % 7;
        return day;
    }
     
    // 元旦
    void new_year_day(int year)
    {
        printf("%d-01-01\n", year);
    }
     
    // 马丁·路德·金纪念日(1月的第三个星期一)
    void martin_luther_king_day(int year)
    {
        printf("%d-01-%02d\n", year, day_of_demand(year, 1, 3, 1));
    }
     
    // 总统日(2月的第三个星期一)
    void president_day(int year)
    {
        printf("%d-02-%02d\n", year, day_of_demand(year, 2, 3, 1));
    }
     
    // 阵亡将士纪念日(5月的最后一个星期一)
    void memorial_day(int year)
    {
        // 从 6 月往前数
        int week = day_of_week(year, 6, 1);
        // 星期一的话,从 31 号往前数 6 天,否则,数 week - 2 天
        int day = 31 - ((week == 1) ? 6 : (week - 2));
        printf("%d-05-%02d\n", year, day);
    }
     
    // 国庆
    void independence_day(int year)
    {
        printf("%d-07-04\n", year);
    }
     
    // 劳动节(9月的第一个星期一)
    void labor_day(int year)
    {
        printf("%d-09-%02d\n", year, day_of_demand(year, 9, 1, 1));
    }
     
    // 感恩节(11月的第四个星期四)
    void thanks_giving_day(int year)
    {
        printf("%d-11-%02d\n", year, day_of_demand(year, 11, 4, 4));
    }
     
    // 圣诞节
    void christmas(int year)
    {
        printf("%d-12-25\n", year);
    }
     
    // 美国节日
    void holiday_of_usa(int year)
    {
        new_year_day(year);
        martin_luther_king_day(year);
        president_day(year);
        memorial_day(year);
        independence_day(year);
        labor_day(year);
        thanks_giving_day(year);
        christmas(year);
    }
     
    int main()
    {
        int year;
        while (std::cin >> year)
        {
            holiday_of_usa(year);
            putchar('\n');
        }
    }
    
    展开全文
  • 然后要知道标题三个节日的常识,母亲节在每年5月份的第二个星期天,父亲节在每年6月份的第三个星期天,而感恩节是在每年的11月份第四个星期的星期四。 知道这些常识就好办了。 写一个SQL的自定义函数: ...

    完成这个要求之前,可以先参考另外一个函数《获取当月的天数列表https://www.cnblogs.com/insus/p/10837900.html

    然后要知道标题三个节日的常识,母亲节在每年5月份的第二个星期天,父亲节在每年6月份的第三个星期天,而感恩节是在每年的11月份第四个星期的星期四。

    知道这些常识就好办了。

    写一个SQL的自定义函数:

     

    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    -- =============================================
    -- Author:      Insus.NET
    -- Create date: 2019-05-12
    -- Update date: 2019-05-12
    -- Description: 获取节日日期
    -- =============================================
    CREATE FUNCTION [dbo].[svf_Festivals]
    (
        @StartYear INT,
        @EndYear INT
    )
    RETURNS @tempTable TABLE([ID] INT IDENTITY(1,1) PRIMARY KEY,[Year] [INT] NOT NULL,[Mother's Day] [DATETIME] NULL,[Father's Day] [DATETIME] NULL,[Thanksgiving Day] DATETIME)
    AS
    BEGIN   
        WHILE @StartYear <= @EndYear
        BEGIN
            INSERT INTO @tempTable ([Year]) VALUES(@StartYear)      
    
            UPDATE @tempTable SET [Mother's Day] = (
                SELECT [Date] FROM (
                    SELECT ROW_NUMBER() OVER (ORDER BY [Date] ASC) AS [RowNumber], [Date] FROM [dbo].[tvf_DaysOfMonth](CAST(@StartYear AS NVARCHAR(4)) + '-05-01')
                    WHERE DATENAME(dw,[Date]) = 'Sunday') AS md 
                WHERE [RowNumber] = 2)
            WHERE [Year] = @StartYear
    
            UPDATE @tempTable SET [Father's Day] = (
                SELECT [Date] FROM (
                    SELECT ROW_NUMBER() OVER (ORDER BY [Date] ASC) AS [RowNumber], [Date] FROM [dbo].[tvf_DaysOfMonth](CAST(@StartYear AS NVARCHAR(4)) + '-06-01')
                    WHERE DATENAME(dw,[Date]) = 'Sunday') AS fd 
                WHERE [RowNumber] = 3)
            WHERE [Year] = @StartYear
            
            UPDATE @tempTable SET [Thanksgiving Day] = (
                SELECT [Date] FROM (
                    SELECT ROW_NUMBER() OVER (ORDER BY [Date] ASC) AS [RowNumber], [Date] FROM [dbo].[tvf_DaysOfMonth](CAST(@StartYear AS NVARCHAR(4)) + '-11-01')
                    WHERE DATENAME(dw,[Date]) = 'Thursday') AS td 
                WHERE [RowNumber] = 4)
            WHERE [Year] = @StartYear
    
            SET @StartYear = @StartYear + 1
        END  
    
        RETURN
    END
    GO
    Source Code

     

    下面是列出2019至2025年所有以上三个节日的日期,帮忙检查一下,是否正确?

     

    转载于:https://www.cnblogs.com/insus/p/10853256.html

    展开全文
  • * data:需要标注的日期日期需要正序排列 * separator:时间的分隔符 * div:父组件div组件 */ function generateCalendar(obj){ let year = obj.year; let dataObj = obj.dataObj; let data = dataObj....
  • 有一类节日日期并不是固定的,而是以“a月的第b个星期c”的形式定下来, 比如说母亲节就定位每年的五月的第二个星期日 现在,给你a,b,c和y1,y2(1850<=y1,y2<=2050),希望你输出从公园y1年到公园y2年间的...
  • 下面是具体到本题的思路: 枚举哪一年,枚举一年中的月份,需要标记每天是星期几,这怎么做呢? 笔者采用的方法是记录该年该月的第一天到1850年1月1日总共过了多少天,用变量days表示,然后days对 7取模,就可以...
  • 数据库表字段含有(年,月,日,日期,周几,假日标识,上一个工作日,下一个工作日),因每年的法定节假日及调休信息不同,故每一年的假日与工作日需要自行维护,改程序只需要将几个节日假期及补班的日期手动录入 ...
  • 美国节日

    2020-03-30 22:42:01
    和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期一:总统节 5月的...
  • C++美国节日

    2020-08-04 16:31:47
    和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期一:总统节 ...
  • 美国节日 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期一...
  • 前言 前面一篇文章写了《SimpleDateFormat 如何安全的使用?》, 里面介绍了 SimpleDateFormat 如何处理日期/时间,以及如何保证线程安全,及其介绍了在 Java 8 中的处理时间...计算一年前或一年后的日期;检查闰年...
  • # coding=gbk ...# 获取一年数据,以字典返回 def getYear(): yearDic = {} week = 2 # 初始星期,2019年1月1日为星期二 year = 2019 # 年份 想要哪年的就改成那年的 记得修改上面的初始星期 ...
  • JAVA核心知识点--JDK1.8中的日期处理

    万次阅读 多人点赞 2017-12-12 19:22:54
    在Java 8中如何处理日期和时间 示例 1、在Java 8中获取今天的日期 示例 2、在Java 8中获取年、月、日信息 示例 3、在Java 8中处理特定日期 示例 4、在Java 8中判断两个日期是否相等 示例 5、在Java 8中检查像...
  • ​ 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期一:总统节 5...
  •  有一类节日日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2...
  • Java8 处理日期和时间

    2019-05-15 09:06:52
    Java 8 中检查像生日这种周期性事件6、在 Java 8 中获取当前时间7、在现有的时间上增加小时8、计算一周后的日期9、计算一年前或一年后的日期10、使用 Java 8 的 Clock 时钟类11、如何用 Java 判断日期是早于还是晚于...
  • 节日

    2019-09-24 03:12:25
    看下一年是不是闰年 { if (IsRun(y+ 1 )) d1+= 366 ; else d1+= 365 ; } else // 看今年是不是闰年 { if (IsRun(y)) d1+= 366 ; else d1+= 365 ; } } return 0 ; }   ...
  • 1、获取今天的日期 2、在Java 8 中获取年、月、日信息 3、在Java 8 中处理特定日期 4、在Java 8 中判断两个日期是否...9、计算一年前或一年后的日期 10、使用 Java 8 的 Clock 时钟类 11、如何用 Java 判断日期是...
  • CSP201503-3节日

    2020-02-27 10:46:08
      基本思路是先求每一年的指定月份的第一天是星期几,再从这个月的第一天遍历到最后一天,在遍历的过程中要判断当前日期的星期和指定的日期是否相同,若相同,则记录下来。最后根据记录的结果进行输出。 源代码 #...
  • Java 8 时间日期库的20个使用示例

    万次阅读 2017-03-21 23:05:44
    除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的处理一直以来都饱受诟病...
  • [Asm] 纯文本查看 复制代码# coding=gbkimport requestsfrom bs4 import BeautifulSoupimport xlwt# 获取一年数据,以字典返回def getYear():yearDic = {}week = 2 # 初始星期,2019年1月1日为星期二year = 2019 # ...
  • 【CCF】节日

    千次阅读 2015-09-05 22:16:06
    CCF 试题名称: 节日
  • 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下: 1月1日:元旦 1月的第三个星期一:马丁·路德·金纪念日 2月的第三个星期一:总统节 5月的...
  • CCF-201503-3(节日

    2020-02-27 22:50:36
    有一类节日日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。  现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年...
  • 中海式气候的开罗,一年只有夏秋两季。夏天炎热而干燥,对渴望在沙漠中探寻古文明的游客来说无疑是种考验。但到了11月,宜人的秋天来了,此时的开罗将让 你尽享古老而神秘的埃及风情。因此,11月到开罗旅游是非常...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,592
精华内容 636
关键字:

一年的节日日期