`
isiqi
  • 浏览: 16474170 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

计算任何一天是星期几的几种算法

阅读更多
近日在论坛上看到有人在问星期算法,特别整理了一下,这些算法都是从网上搜索而来,算法的实现是我在项目中写的。希望对大家有所帮助。

一:常用公式

W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D

Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。

二:蔡勒(Zeller)公式

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

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

相比于通用通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。

三:对蔡勒(Zeller)公式的改进

作者:冯思琮
相比于另外一个通用通用计算公式而言,蔡勒(Zeller)公式大大降低了计算的复杂度。不过,笔者给出的通用计算公式似乎更加简洁(包括运算过程)。现将公式列于其下:
W=[y/4]+r (y/7)-2r(c/4)+m’+d

公式中的符号含义如下,r ( )代表取余,即只要余数部分;m’是m的修正数,现给出1至12月的修正数1’至12’如下:(1’,10’)=6;(2’,3’,11’)=2;(4’,7’)=5;5’=0;6’=3;8’=1;(9’,12’)=4(注意:在笔者给出的公式中,y为润年时1’=5;2’=1)。其他符号与蔡勒(Zeller)公式中的含义相同。

四:基姆拉尔森计算公式

这个公式名称是我给命名的,哈哈希望大家不要见怪。

W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意:在公式中有个与其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

分享到:
评论

相关推荐

    判断某一天是星期几的算法

    ### 判断某一天是星期几的算法 ...Zeller公式是一种简单而有效的计算方法,可以快速准确地计算出任何公历日期对应的星期几。通过本文介绍的方法,我们可以轻松地利用这一工具解决日常生活中的日期问题。

    如何计算某一天是星期几?

    蔡勒公式是一种用来计算某一天是星期几的数学公式,适用于1582年10月15日之后的日期。该公式由德国数学家克里斯蒂安·蔡勒(Christian Zeller)于19世纪末提出,因其简洁性和准确性而在众多计算方法中脱颖而出。 **...

    计算某日为星期几

    当然,实际的`getWeek()`函数实现需要包含计算星期几的算法,如蔡勒公式: ```cpp int getWeek(int year, int month, int day) { int q = day; int m = (month + 9) % 12 + 1; int K = year % 100; int J = ...

    日历查询的算法 如何计算某一天是星期几

    蔡勒(Zeller)公式,由德国数学家克里斯蒂安·蔡勒提出,是一种高效且精确的方法,用于计算给定日期是星期几。这个公式适用于1582年10月15日之后的公历日期,因为这是格里高利历(即当今普遍使用的公历)开始实施的...

    JavaScript计算某一天是星期几的方法

    在介绍JavaScript计算某一天是星期几的方法之前,我们先来了解下JavaScript中与日期相关的基础知识。JavaScript使用Date对象来处理日期和时间。Date对象可以用来表示任何时间点,例如当前时间、过去或者未来的某个...

    1.提供菜单方式选择月日, 2.输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几;

    为了计算星期几,可以使用一种称为"蔡勒(Zeller's congruence)"的公式,它能根据给定的年、月、日快速确定该日期是星期几。蔡勒公式的简化形式如下: ```markdown h = (q + [13(m+1)/5] + K + [K/4] + [J/4] - 2J) ...

    计算某天是星期几自动开启脚本

    总之,“计算某天是星期几自动开启脚本”不仅是一个简单的日期计算工具,更是一种在ROS系统中实现时间敏感任务调度的有效方法。通过合理的脚本设计和逻辑控制,可以极大地提升系统的灵活性和效率。

    输入公历的某年某月某日,相应的计算出这一天是星期几。

    ### 输入公历的某年某月某日,计算这一天是星期几 在计算机科学与算法领域,计算公历中特定日期对应的星期是一项基础且实用的功能。本篇文章将深入探讨如何利用蔡勒公式来实现这一功能,并对代码进行详细解读。 ##...

    java星期几的计算程序

    本程序采用了一种基本的方法,即根据两个日期之间的天数差以及已知的一个星期中的某一天(例如星期一)来计算另一个日期是星期几。 ### 2. 日期计算中的闰年判断 闰年的判断是日期计算中非常重要的一步,因为闰年...

    计算2000~2099年任一天星期几

    标题中的“计算2000~2099年任一天星期几”是一个经典的时间算法问题,涉及到日期处理和模运算。在这个问题中,我们被要求编写一个程序,能够接收一个日期(年、月、日),然后确定这个日期在星期中的位置,即星期一...

    测算历史上某一天为星期几的文档

    这篇文章主要讲述了如何计算历史上或未来的某一天是星期几的方法,主要涉及了两种计算公式:蔡勒(Zeller)公式和作者提出的简化公式。 蔡勒(Zeller)公式是计算星期的经典方法,公式为: w = y + [y/4] + [c/4] -...

    计算某年某月某日是星期几

    要实现这一功能,我们可以利用计算机科学中的“蔡勒公式”(Zeller's congruence),这是一种用于计算公历日期对应的星期的算法。 首先,我们需要了解一些基本的日期概念。公历中,一年分为12个月,其中1、3、5、7...

    时间控件,当前日期前的几天是星期几

    本主题聚焦于一个特定的需求:“时间控件,当前日期前的几天是星期几”,以及“这个月前一个月的算法”。 首先,我们需要理解如何在编程中获取当前日期。在多种编程语言中,如JavaScript、Python和Java,都有内置的...

    求任一天为星期几

    根据给定的文件信息,我们可以总结出以下关于“求任一天为星期几”的知识点: ### 知识点一:算法背景 此程序基于蔡勒公式(Zeller's Congruence)的一个变体来计算给定日期是星期几。蔡勒公式是一种在已知公元...

    万年历 知道某日求前后是几年几月几号星期几

    描述进一步指出,这个程序能够准确地计算出给定日期的前一天或后一天的详细信息,比如从2008年11月14日开始,向前一天是2008年11月13日,向后一天是2008年11月15日星期六。这个功能对于日程管理、时间计算以及各种与...

    蔡勒公式——计算星期几

    蔡勒公式是一种实用且有效的计算星期几的方法,广泛应用于日常生活、计算机程序设计等领域。通过简单的数学运算,即可快速得出任意公历日期对应的星期几。对于那些需要频繁查询日期相关信息的应用场景而言,蔡勒公式...

    万年历星期的算法(C语言)

    万年历星期算法是指在一定范围内(如2000年至2099年)计算任意一天是星期几的方法。通过数学公式和编程逻辑,可以快速准确地得出结果。该算法适用于嵌入式系统等资源受限的环境中,因为其占用内存小且运行速度快。 ...

    JS如何判断某天为星期几

    在JavaScript(JS)中,判断某一天是星期几是一个常见的需求,尤其是在开发涉及日期操作的应用时。本篇文章将深入解析如何使用JS来实现这一功能,包括理解提供的代码片段以及提供一个更为直观和易于理解的方法。 ##...

    一个非常简洁的计算星期几的程序

    另一种程序化的方法可以用来计算星期几,如提供的代码片段所示。代码中定义了两个函数:GetWeekFromDay和GetWeekDay。这些函数可以在给定年、月、日后计算出星期几。注意,GetWeekDay函数中,星期天用0表示,星期一...

Global site tag (gtag.js) - Google Analytics