1.用途:给你年月日,计算今天星期几

2.公式:Week = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7;

其中: d为几号,m为月份,y为年份

3.注:把一月和二月看为是上一年的十三月和十四月!!

4.板子:

int Date(int y,int m,int d)
{if(m==1||m==2){//一二月换算m+=12;y--;}int week = (d + 2*m +3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1)%7;return week;//其中1~7表示周一到周日
}

5.例题HDU6112 今夕何夕

题意:接下来最近的哪一年里的同一个日子,和今天的星期数一样?

代码:

#include <iostream>
#include <cstring>
#include<cstdio>
using namespace std;
int Date(int y,int m,int d)
{if(m==1||m==2){m+=12;y--;}int week = (d + 2*m +3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1)%7;return week;
}
bool judgeYear(int y)
{if((y%4==0&&y%100!=0)||y%400==0)return true;return false;}
int main()
{int T;scanf("%d",&T);int year,month,day;while(T--){scanf("%d-%d-%d",&year,&month,&day);int week = Date(year,month,day);for(int i = year+1;i<10000;i++)//枚举判断{if(judgeYear(year)&&month==2&&day==29&&!judgeYear(i))continue;//注意特别判断第一年闰年2月29第二年不存在的情况!if(week == Date(i,month,day)){printf("%d\n",i);break;}}}return 0;
}

ACM数论----基姆拉尔森计算公式(今天计算星期几)相关推荐

  1. 算法设计——基姆拉尔森计算公式:计算几月几号是星期几

    基姆拉尔森计算公式 W=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7 其中,W表示算出的星期的数字表示:0:星期日:1:星期一-- d表示日期,m表示月份,y表示年份 ...

  2. 基姆拉尔森计算公式:计算每个月1号是周几的公式

    算法如下:基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7在公式中d表示日期中的日数,m表示月份数,y表示年数.注意:在公式中有个与其他公式不 ...

  3. 蔡基姆拉尔森计算公式

    用一道题目,了解这个公式: 有一个公式可以快速地根据日期计算这一天是星期几,这被称为蔡基姆拉尔森计算公式,假设星期为w,年份为y,月份为m,日期为d. w =(d+2×m+3×(m+1)/5+y+y/ ...

  4. 根据日期计算星期几 -- 基姆拉尔森计算公式

    首先看下百度百科的基姆拉尔森计算公式定义:  基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y ...

  5. C语言根据日期计算星期——基姆拉尔森计算公式

    公式 基姆拉尔森计算公式 w = ( day + 2month +3(month+1)/5 + year + year/4 - year/100 +year/400)%7 根据已知公元1年1月1日星期 ...

  6. 根据年月日计算是星期几的函数,基姆拉尔森计算公式

    算法如下:  基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数. 注意:在公式中有个与 ...

  7. HDU 6112 今夕何夕【2017百度之星】【日期模拟计算】【基姆拉尔森计算公式】【蔡勒公式】

    今夕何夕 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  8. C语言根据日期(年,月,日)判断星期几(使用基姆拉尔森计算公式)

    C语言根据日期判断星期几(使用基姆拉尔森计算公式) 算法如下:  基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日 ...

  9. 基姆拉尔森计算公式(根据日期判断星期几)

    //基姆拉尔森计算公式根据日期判断星期几 void CalculateWeekDay(int y, int m,int d){if(m==1||m==2) m+=12,y--;int iWeek = ...

最新文章

  1. Android开发实践:如何设置NDK的编译选项
  2. linux 错误 ttyname failed: Inappropriate ioctl for device 解决方法
  3. RTEMS 的 AT91SAM9260 移植(5): 调试串口驱动
  4. OverIQ 中文系列教程【翻译完成】
  5. 一个简单的fftw3例子:正弦信号的离散傅里叶变换
  6. 超快的HTML5 2D渲染引擎Pixi.js入门
  7. linux内核之中断和异常
  8. Java获取resin端口_线上解决Resin服务响应过慢的几个方法
  9. 批量修改喜马拉雅下载节目的文件名
  10. Python和Matlab小波分析
  11. C专家编程(学习笔记)_第10章 再论指针
  12. Friendster,linkedin,orkut,liring对SNS的求索 1
  13. VC中实现GB2312、BIG5、Unicode编码转换
  14. android octet stream,Java MimetypesFileTypeMap始终在Android模拟器上返回application/octet-stream...
  15. NI PXI-6221(16路模拟输入)校准小记
  16. 腾讯、百度、讯飞 语音识别
  17. 由“功夫熊猫”想到了“侠”
  18. 信号的概念,认识,处理动作
  19. 如何删除和添加word的脚注那个横线
  20. ubuntu18.04添加自定义分辨率

热门文章

  1. 如何获取在桌面创建快捷方式的权限
  2. 北海·涠洲岛攻略(两日游)
  3. 创建临时文件 临时目录
  4. (1)esp32的micropython开发
  5. 是个有趣的实验(10 interesting experiments)
  6. 科技云报道:AI写小说、绘画、剪视频,生成式AI更火了!
  7. 【微信小程序】冒泡事件与非冒泡事件、将文章数据从业务中分离、wxml的模块化
  8. [Unity游戏]卡牌记忆消除游戏
  9. 物理机安装虚拟系统(开启即是虚拟)
  10. 为什么程序员下班后只关显示器从不关电脑?