蔡勒(Zeller)公式:根据日期推算是星期几

Zeller‘s Congruence:

w=y + [y/4] + [c/4] - 2c + [26(m+1)/10] + d - 1

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

public static int daysOfWeek(int year, int month, int day) {
	if (month < 3) {
		month += 12;
		year -= 1;
	}

	int c = year / 100;
	int y = year % 100;
	int w = (y + (y / 4) + (c / 4) - (2 * c) + ((26 * (month + 1)) / 10) + day - 1) % 7;
	return w;
}

  

时间: 2024-10-12 13:06:10

蔡勒(Zeller)公式:根据日期推算是星期几的相关文章

蔡勒(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 < 3) { Y-=1; m+=12; } c = Y / 100; y = Y %

蔡勒(Zeller)公式及其推导:快速将任意日期转换为星期数

0. 本文的初衷及蔡勒公式的用处 前一段时间,我在准备北邮计算机考研复试的时候,做了几道与日期计算相关的题目,在这个过程中我接触到了蔡勒公式.先简单的介绍一下蔡勒公式是干什么用的. 我们有时候会遇到这样的问题:看到一个日期想知道这一天是星期几,甚至看到一个历史日期或纪念日,我们想快速的知道这一天是星期几.对于这个问题,如果用编程的方式,应该怎么实现呢?你可能已经有思路了,比如你知道某个日期是星期几,把这个日期作为原点,然后计算目标日期和这个原点之间相差多少天,再除以 7 求余数,最后通过余数判断

蔡勒(Zeller)公式

来源好搜百科:http://baike.haosou.com/doc/1048888-1109421.html 蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几. 公式W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1(或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1) 若要计算的日期是在1582年10月4日或之前,公式则为 w=y+[y/4]+[c/4]-2c+[1

c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便

—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月1日来计算):d:日:[ ]代

08--MOOC--C/C++ 根据年月日计算星期几——蔡勒公式篇

C/C++ 根据年月日计算星期几——蔡勒公式篇 蔡勒公式  蔡勒(Zeller)公式:是一个计算星期的公式.随便给一个日期,就能用这个公式推算出是星期几.蔡勒公式如下:W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下:w:星期: w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六c:世纪-1(前两

蔡勒公式求今天是星期几?

之所以知道蔡勒公式,是因为今天在九度上做的一道题目[题目1043:Day of Week].以前也曾经做过求星期几这样的题目,当时的做法比较粗暴:已经知道某年某月某日是星期几,要求现在给的某天是星期几,直接求给的日期和已知日期的相差天数对7取余,再根据已知的星期做相应的调整即可.这样的做法不仅繁琐,而且一不留神就有可能算错.这次又碰到类似的题目,希望尝试新的方法.于是在查资料的过程中,知道了蔡勒公式.于是用蔡勒公式来解决了这道题目,虽然知道蔡勒公式,但是在使用过程中依旧错误不断.其实是因为对蔡勒

蔡勒公式——根据年月日计算星期几

蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几. 计算公式 由于罗马教皇搞了一些骚操作,这里给出的公式仅适用于1582年10月15日以后的星期,详情可参考 格里高利历 符号意义 w:星期: w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪(注:一般情况下,在公式中取值为已经过的世纪数,也就是年份除以一百的结果,而非正在进行的世纪,也就是现在常用的年份除以一百加一:不过如果年份是公元前的年份且非

蔡勒公式

今天看到一个很有趣的公式 给定一个日期,问这个日期是星期几? 一般我们都会通过今天的日期和星期推算出0001年01月01日的星期,然后对于输入的日期来推算 注意要考虑闰年什么的! 有了蔡勒公式,直接算哦 上公式: w=(y + [y/4] + [c/4] - 2*c +[26*(m+1)/10] + d - 1)%7 若1582年10月4日或之前的改为 w=(y + [y/4] + [c/4] - 2*c +[26*(m+1)/10] + d +2)%7 c.y.m.d分别为世纪  年份  月

今天星期几--蔡勒公式

今天星期几? 这样的问提在程序中常常是和日期一起来计算了. 在没接触蔡勒公式的时候,要我做我也很费劲的先去计算一更有多少天,然后在mod7: 但是今天遇到一个了这个公式.我就来看一下. 这就是公式. w就是我们要的周几了,c是世纪数-1(其实就是年份的前两位),y是年份的后两位,m是月份,d是天数 例如2014年5月8号  c=20 y =14 m=5 d=8: 看到这个东西是不是很喜欢啊,套上就出结果.别急,这个结果不是没天都对的,因为这里有两个特殊的月份需要处理,1月和2月,你会发现当你带入