计算某天星期几,最出名的算法就是蔡勒公式:
—— 蔡勒(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:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。)
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。
以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下:
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1
=49+[12.25]+5-40+[28.6]
=49+12+5-40+28
=54 (除以7余5)
即2049年10月1日(100周年国庆)是星期5。
想知道更详细的到网上查下.
实现的算法函数:
/************************************************************************
* 返回值 0~6(星期日~星期六)
************************************************************************/
int GetWeek(int nYear, int nMouth, int nDay)
{
int week;
int c = nYear/100;
if(nMouth<3)
{
nYear -= 1;
nMouth += 12;
}
week = ((nYear%100)+((nYear%100)/4)+(c/4)-2*c+(26*(nMouth+1)/10)+nDay-1)%7;
if (week<0) week += 7;
return week;
}
注意:对于结果为负数的问题加个7就OK了
分享到:
相关推荐
js 实现 计算某天星期几! 值得下载看看!资源免费,大家分享!!
在编程领域,计算某日是星期几是一项常见的任务,尤其在日期处理和日历应用中。这个任务可以通过各种算法来实现,例如蔡勒(Zeller's)公式或凯撒(Knuth)算法。在这个C++项目中,我们看到使用了VS2008集成开发环境,并...
输入公历的某年某月某日,相应的计算出这一天是星期几。
### 如何计算某一天是星期几? 在日常生活与工作中,我们时常会遇到需要确定某一天具体是星期几的情况。为了方便地解决这类问题,历史上发展出了多种计算公式,其中最为著名的便是蔡勒(Zeller)公式。下面我们将...
根据给定的信息,本文将详细解释“计算某天是星期几自动开启脚本”的核心概念、实现原理及其在ROS系统中的应用。 ### 核心概念与背景 在自动化任务管理中,经常需要根据时间的不同来执行不同的脚本或任务。例如,...
在计算机编程中,计算某年某月某日是星期几是一项常见的日期处理任务。这个功能在日历应用、时间管理工具、数据分析等多个领域都有广泛的应用。要实现这一功能,我们可以利用计算机科学中的“蔡勒公式”(Zeller's ...
计算2000年1月1日后的某一天是星期几。要求进行日期合法性判断,非法日期则函数返回0。合法日期则返回1-7中某个数值,表示星期一到星期天中某一天。
本文将详细介绍如何通过数学算法来计算某一天属于星期中的哪一天,特别是Zeller公式。 #### Zeller公式简介 Zeller公式是一种用于确定公历(格里高利历)中任何日期为星期几的有效算法。它由德国数学家克里斯蒂安...
在C语言中,实现根据日期计算星期几的功能是常见且实用的编程需求。本文将详细解析一段C语言代码,该代码能够根据输入的年、月、日计算出对应的星期几。 ### 核心知识点 #### C语言中的日期处理 C语言标准库并未...
在日常生活与工作中,我们常常需要知道某一天是星期几,这在安排会议、制定计划或是进行日期相关的数据分析时尤为重要。本文将深入解析一个实用的方法,帮助我们准确地计算出任意指定日期是星期几。 #### 核心公式...
上课设计的简单题目,适合初学者看看。没什么技术含量的啊
在介绍JavaScript计算某一天是星期几的方法之前,我们先来了解下JavaScript中与日期相关的基础知识。JavaScript使用Date对象来处理日期和时间。Date对象可以用来表示任何时间点,例如当前时间、过去或者未来的某个...
该程序主要是完成判断某天是周几,输入一天的日期(2020-2-2)这种格式,会判断该天是周几,如果日期格式不对,会显示输入错误。
这篇文章主要讲述了如何计算历史上或未来的某一天是星期几的方法,主要涉及了两种计算公式:蔡勒(Zeller)公式和作者提出的简化公式。 蔡勒(Zeller)公式是计算星期的经典方法,公式为: w = y + [y/4] + [c/4] -...
#计算某特定天使星期几 #蔡勒公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 import math dict = {1: "星期一", 2: "星期二", 3: "星期三", 4: "星期四", 5: "星期五", 6: "星期六", 0: "星期天"} while 1: y=int...
在VC++编程环境中,计算某日期是星期几是一项常见的任务,这涉及到日期和时间的处理。在本示例中,我们关注的是如何利用C++语言和Microsoft Visual Studio(VC)的库来解决这个问题。日期与星期几的关联计算通常基于...
结合这两个函数,我们可以轻松地处理“输入年月日,求是当年的第几天”和“求某年某月某日是星期几”的需求。例如: ```csharp int year = 2022; int month = 1; // 1代表1月 int day = 1; int dayOfYear = ...
本程序采用了一种基本的方法,即根据两个日期之间的天数差以及已知的一个星期中的某一天(例如星期一)来计算另一个日期是星期几。 ### 2. 日期计算中的闰年判断 闰年的判断是日期计算中非常重要的一步,因为闰年...