【刷题】美国节日、蔡勒公式(一个推算周几的计算公式)
题目:
和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同。具体规则如下:
- 1月1日:元旦
- 1月的第三个星期一:马丁·路德·金纪念日
- 2月的第三个星期一:总统节
- 5月的最后一个星期一:阵亡将士纪念日
- 7月4日:美国国庆
- 9月的第一个星期一:劳动节
- 11月的第四个星期四:感恩节
- 12月25日:圣诞节
现在给出一个年份,请你帮忙生成当年节日的日期。
蔡勒公式:
蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。
#include <iostream>
#include <stdio.h>
using namespace std;int Zeller(int year, int month, int day)
{if (month == 1 || month == 2){month += 12;year--;}int y = year % 100;int c = year / 100;int w = ((c / 4) - 2 * c + y + (y / 4) + (13 * (month + 1) / 5) + day - 1) % 7;w = (w + 7) % 7;if (w == 0)w = 7;return w;
}int day_of_demand(int year, int month, int count, int d_of_week)
{int week = Zeller(year, month, 1);int day = 1 + (count - 1) * 7 + (7 + d_of_week - week) % 7;return day;
}void NewYear(int year)
{printf("%d-%02d-%02d\n", year, 1, 1);
}void MartinLuther(int year)
{int day = day_of_demand(year, 1, 3, 1);printf("%d-%02d-%02d\n", year, 1, day);
}void President(int year)
{int day = day_of_demand(year, 2, 3, 1);printf("%d-%02d-%02d\n", year, 2, day);
}void Fallensoldiers(int year)
{int week = Zeller(year, 6, 1);int day = 31 - ((week == 1) ? 6 : (week - 2));printf("%d-%02d-%02d\n", year, 5, day);
}void NationalDay(int year)
{printf("%d-%02d-%02d\n", year, 7, 4);
}void Labour(int year)
{int day = day_of_demand(year, 9, 1, 1);printf("%d-%02d-%02d\n", year, 9, day);
}void Thanks(int year)
{int day = day_of_demand(year, 11, 4, 4);printf("%d-%02d-%02d\n", year, 11, day);
}void Christmas(int year)
{printf("%d-%02d-%02d\n", year, 12, 25);
}int main()
{int year;while(cin >> year){NewYear(year);MartinLuther(year);President(year);Fallensoldiers(year);NationalDay(year);Labour(year);Thanks(year);Christmas(year);cout << endl;}return 0;
}
【刷题】美国节日、蔡勒公式(一个推算周几的计算公式)相关推荐
- HDU 6112 今夕何夕 蔡勒公式
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112题意:中文题目 分析:关键点在与如何计算一个日期是星期几,这个可以通过蔡勒公式来计算.基姆拉尔森计 ...
- 【每日一题】美国节日(基姆拉尔森公式、蔡勒公式)
[每日一题]美国节日(基姆拉尔森公式.蔡勒公式) 相关文章: [每日一题]一周中的第几天(基姆拉尔森公式的应用) [每日一题]美国节日(基姆拉尔森公式.蔡勒公式) [每日一题]计算日期 ...
- [每日一题] 62. 美国节日(日期计算、蔡勒公式)
1. 题目来源 链接:美国节日 来源:牛客网 2. 题目说明 和中国的节日不同,美国的节假日通常是选择某个月的第几个星期几这种形式,因此每一年的放假日期都不相同.具体规则如下: 1月1日:元旦 1月的 ...
- HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 【蔡勒公式 】根据给定的年月日求出对应星期几
蔡勒公式 蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几.时间复杂度:O(1).具体的在红书P229有. 若要计算的日期是在1582年10月4日或之前,公 ...
- 牛客多校第六场 G Is Today Friday? 蔡勒公式/排列
题意: 有一堆日期,这些日期都是星期五,但是数字被映射成了字母A~J,现在让你求逆映射,如果存在多种答案,输出字典序最小的那个. 题解: 用蔡勒公式解决关于星期几的问题. 对于映射,可以用笔者刚刚学会 ...
- 快速计算某一天是星期几-蔡勒公式
以下内容转自百度百科. w:星期: w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪(年份前两位数) y:年(后两位数) m:月(m大于等于3 ...
- c语言 万年历 蔡勒公式,C++实现简易万年历
本文实例为大家分享了C++实现简易的万年历,供大家参考,具体内容如下 代码如下: /* *文件名称:万年历.cpp *作 者:chenghan *完成日期:2019/1/10 *版 本 号:1.0 * ...
- 计算星期几(蔡勒公式)
Description acm的iphxer经常忘记某天是星期几,但是他记那天的具体日期,他希望你能写个程序帮帮他. Input 每行有三个整数 year,month,day,日期在1600年1月1日 ...
最新文章
- Javascript操作table,tr,td和表格CSS样式设置小常识
- 我在系统设计上犯过的14个错
- 信息化十七载 ERP重塑双良战略与核心价值
- JS系统库:预定义对象(内建对象)
- Android应用的基本组件介绍
- springboot集成钉钉_Java(SpringBoot)实现钉钉机器人消息推送
- 热门NPM库 “coa” 和“rc” 接连遭劫持,影响全球的 React 管道
- 论文推荐 | 一文了解百度10篇ACL 2019概况和该技术的实际可落地应用
- 形态学滤波对图像进行边缘及角点检测
- 计算机1级题库软件,计算机一级软件哪个好_计算机一级刷题软件_计算机一级试题软件...
- 读书笔记2014第12本:《创新者的窘境》
- Windows 7下可用的“超级终端”——Hypertrm和SecureCRT
- 使用Motrix快速下载百度网盘文件
- micropython nodemcu 获取天气预报_NodeMCU获取并解析心知天气信息
- Unity 多端游戏画面同步
- 201704 创建财务凭证函数
- 【后台弹窗】应用跳转直通车--通知栏通知跳转后台应用
- web自动化(鼠标、键盘操作)
- 【深度学习】:详解目标检测YOLO V1(You Only Look Once)算法
- Dockerfile说明