蔡勒(Zeller)公式--黑色星期五
求某年某月某日是周几;
蔡勒(Zeller)公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 ;
y是年的后两位;
c是世纪数-1(年的前两位);
m是月份,大于等于3,小于等于14,某年的1、2月要看作上一年的13、14月来计算,例如2000年1月1日要按1999年13月1日来算;
d是天数;
[ ]代表取整;
int Zeller(int Y, int m, int d)
{
int c,y,w;
if (m < )
{
Y-=;
m+=;
}
c = Y / ;
y = Y % ; w = ( y+ y/ + c/ - *c + (*(m+)/) + d - ) % ;
if (w < )
w += ;
return w;
}
有一道蓝桥杯的题:
说明:(1)一年有365天,闰年有366天,所谓闰年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;(2)已知1998年1月1日是星期四,用户输入的年份肯定大于或等于1998年。
输入格式:输入只有一行,即某个特定的年份(大于或等于1998年)。
输出格式:输出只有一行,即在这一年中,出现了多少次既是13号又是星期五的情形。
输入输出样例
#include<stdio.h>
int Zeller(int Y, int m, int d); int main()
{
int year,num,i;
while(scanf("%d",&year)!=EOF)
{
num=;
for(i=;i<;i++)
{
if(Zeller(year,i,)==)
num++;
}
printf("%d\n",num);
}
return ;
}
/*
蔡勒(Zeller)公式: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 ;
y是年的后两位;
c是世纪数-1;
m是月份,大于等于3,小于等于14,某年的1、2月要看作上一年的13、14月来计算
d是天数
[ ]代表取整
*/ int Zeller(int Y, int m, int d)
{
int c,y,w;
if (m < )
{
Y-=;
m+=;
}
c = Y / ;
y = Y % ; w = ( y+ y/ + c/ - *c + (*(m+)/) + d - ) % ;
if (w < )
w += ;
return w;
}
蔡勒(Zeller)公式--黑色星期五的更多相关文章
- 蔡勒(Zeller)公式
蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几. W =[ [c/4] - 2c + y + [y/4] + [13 * (m+1) / 5] + d - ...
- 蔡勒(Zeller)公式及其推导:快速将任意日期转换为星期数
0. 本文的初衷及蔡勒公式的用处 前一段时间,我在准备北邮计算机考研复试的时候,做了几道与日期计算相关的题目,在这个过程中我接触到了蔡勒公式.先简单的介绍一下蔡勒公式是干什么用的. 我们有时候会遇到这 ...
- c语言详解 蔡勒(Zeller)公式计算某一天是星期几 极其方便
—— 蔡勒(Zeller)公式 ,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月1日来计算):d:日:[ ]代表取整,即只 ...
- 蔡勒(Zeller)公式:根据日期推算是星期几
Zeller's Congruence: w=y + [y/4] + [c/4] - 2c + [26(m+1)/10] + d - 1 公式中的符号含义如下:w:星期: w对7取模得:0-星期日,1 ...
- 蔡勒(Zeller)公式
来源好搜百科:http://baike.haosou.com/doc/1048888-1109421.html 蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星 ...
- 牛客多校第六场 G Is Today Friday? 蔡勒公式/排列
题意: 有一堆日期,这些日期都是星期五,但是数字被映射成了字母A~J,现在让你求逆映射,如果存在多种答案,输出字典序最小的那个. 题解: 用蔡勒公式解决关于星期几的问题. 对于映射,可以用笔者刚刚学会 ...
- URAL 2048 History 蔡勒公式
HistoryTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view.acti ...
- HDU 6112 今夕何夕 蔡勒公式
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6112题意:中文题目 分析:关键点在与如何计算一个日期是星期几,这个可以通过蔡勒公式来计算.基姆拉尔森计 ...
- HDU 6112.今夕何夕-蔡勒公式 (2017"百度之星"程序设计大赛 - 初赛(A)1005)
1005:今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
随机推荐
- mysql基础知识笔记
Mysql基础笔记 环境配置 基本概念 mysql命令行 进入 use show 查询 select order by where like 数据过滤regexp concat 文本函数 日期函数 数 ...
- ATM技术基本原理
1 术语.定义和缩略语 1.1 术语.定义 术语/定义 说 明 ATM层 位于B-ISDN/ATM网络协议参考模型的第二层,完成交换.路由选择和信元复用功能.ATM层的基本处理单位是信元. AA ...
- C# 输出带颜色文字,用于实时日志输出
private void button1_Click(object sender, EventArgs e) { LogMessage("绿色"); 4 LogError(&quo ...
- aws.s3的 upload 和putObject有什么区别
相同点:上传或新增一个object : <template> <div class="page"> <!-- 参考:https://blog.csdn ...
- call()、apply()和bind()的异同
相同点: 改变this的指向: var a = { name:"丸子", fn:function(){ console.log(this.name); } } var b = a. ...
- MySQL大数据量分页性能优化
mysql大数据量使用limit分页,随着页码的增大,查询效率越低下. 测试实验 1. 直接用limit start, count分页语句, 也是我程序中用的方法: select * from p ...
- Linux下应急工具
Linux下的应急工具 在Linux下,应急的查看点无非那个几个,一是看表现(宕机.高CPU.高内存.高IO.高网络通信),二看连接.三看进程.四看日志.五看文件(Linux一切皆文件),再者结合起来 ...
- memcached stats 命令
STAT pid 1552 STAT uptime 3792 STAT time 1262517674 STAT version 1.2.6 STAT pointer_size 32 STAT cur ...
- kvm虚拟机中virbr0虚拟网络接口的删除与恢复
安装 KVM 后都会发现网络接口里多了一个叫做 virbr0 的虚拟网络接口 一般情况下,虚拟网络接口virbr0用作nat,以允许虚拟机访问网络服务,但nat一般不用于生产环境.我们可以使用以下方法 ...
- 【BZOJ4445】[Scoi2015]小凸想跑步 半平面交
[BZOJ4445][Scoi2015]小凸想跑步 Description 小凸晚上喜欢到操场跑步,今天他跑完两圈之后,他玩起了这样一个游戏. 操场是个凸n边形,N个顶点按照逆时针从0-n-l编号.现 ...