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

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

  最好用的是蔡勒公式:

  W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1

  C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和
  14月来算,这时C和y均按上一年取值。   两个公式中的[...]均指只取计算结果的整数部分。算出来的W除以7,余数是几就
  是星期几。如果余数是0,则为星期日。
  我们知道,公历的平年是365天,闰年是366天。置闰的方法是能被4整除的年份在
  2月加一天,但能被100整除的不闰,能被400整除的又闰。因此,像1600、2000、2400
  年都是闰年,而1700、1800、1900、2100年都是平年。公元前1年,按公历也是闰年。   因此,对于从公元前1年(或公元0年)12月31日到某一日子的年份Y之间的所有整年
  中的闰年数,就等于   [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400],   [...]表示只取整数部分。第一项表示需要加上被4整除的年份数,第二项表示需要去掉
  被100整除的年份数,第三项表示需要再加上被400整除的年份数。之所以Y要减一,这
  样,我们就得到了第一个计算某一天是星期几的公式:   W = (Y-1)*365 + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + D. (1)   其中D是这个日子在这一年中的累积天数。算出来的W就是公元前1年(或公元0年)12月
  31日到这一天之间的间隔日数。把W用7除,余数是几,这一天就是星期几。比如我们来
  算2004年5月1日:   W = (2004-1)*365 + [(2004-1)/4] - [(2004-1)/100] + [(2004-1)/400] +
  (31+29+31+30+1)
  = 731702,   731702 / 7 = 104528……6,余数为六,说明这一天是星期六。这和事实是符合的。

C:根据日期判断是一年的第几天、星期几的更多相关文章

  1. 分享一个根据具体的日期判断星座的PHP函数

    其实原理很简单,也就是把所有的星座月份日期范围存储到一个数组中,然后根据日期判断属于哪个范围,这样就得到是哪个星座了. 下面的这个函数写的比较精炼,可以参考一下 function constellat ...

  2. php判断今日是本月的第几个星期几

    php判断今日是本月的第几个星期几 php中有一个非常强悍的系统函数date()函数.巧妙的利用他可以实现显示任意我们需要的时间.比如今天遇到个需要是要判断今天是本月的第几个星期几,这里就不讨论这种说 ...

  3. easyui datebox 扩展清空按钮及日期判断

    <input id="EndHavDate" class="easyui-datebox" data-options="prompt:'请选择结 ...

  4. 【Java】实现一个根据日期判断星座程序的编写

    思路 直接根据月份做索引,然后根据日期边界判断是本月的星座还是上月的. 算法 private static String getAstro(int month, int day) { String[] ...

  5. sql中字符分割,日期判断,以及函数的应用

    前两天公司有一个功能需求,客户给出几天的工作时间和休息,然后顾客的访问时间必须要在工作时间之内和休息时间之外,所以要求做一下判断.本来以为这个没什么,谁知道客户提供的工作时间段和休息时间段不定,给出的 ...

  6. JavaScript中,本周、上周、本月、上月日期判断

    /** * 获取本周.本季度.本月.上月的开端日期.停止日期 */ var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天 ...

  7. mydate97时间控件最大值最小值限制及Javascript日期判断大小

    <script language="javascript" type="text/javascript" src="<%=basePath ...

  8. sql查询的日期判断问题

    在SQLSERVE中,如果某个数据表的类型被定义成datetime类型,那么数据是包含秒的.这时候如何查询某天的数据呢?新手们可能想:最直接的做法是把时间部分去掉,只取日期部分.于是日期的函数就用上了 ...

  9. js连续的日期判断,判断相差几天

    var startTime=Date.parse(new Date('2020-02-28')); var endTime=Date.parse(new Date('2020-02-29')); $. ...

  10. Calendar 日期判断 等于 。小于。大于

    public static void main(String[] args) throws Exception { String startTime = "2012-12-12 12:45: ...

随机推荐

  1. Python爬虫简单实现之Q乐园图片下载

    根据需求写代码实现.然而跟我并没有什么关系,我只是打开电脑望着屏幕想着去干点什么,于是有了这个所谓的“需求”. 终于,我发现了Q乐园——到底是我老了还是我小了,这是什么神奇的网站,没听过啊,就是下面酱 ...

  2. 利用背景流量数据(contexual flow data) 识别TLS加密恶意流量

    识别出加密流量中潜藏的安全威胁具有很大挑战,现已存在一些检测方法利用数据流的元数据来进行检测,包括包长度和到达间隔时间等.来自思科的研究人员扩展现有的检测方法提出一种新的思路(称之为“dataomni ...

  3. "听话"的品格的症状

    反思了一下,也许是因为以前比较听话,听大人的话,听老师的话,听长辈的话.听电视剧的话..........哈哈 现在发现,世界是靠自己去认识,去体会的,别人的经验都只能作为参考,绝对不能不加思考的照搬硬 ...

  4. Qt在线技术交流之OpenGL、Quick以及所经历项目开发心得分享

    时间:3月25日晚上7:30 主题:Qt在线技术交流之OpenGL.Quick以及所经历项目开发心得分享 直播:http://qtdream.com 主页.全民TV,可能会加上其他的直播平台进行转播 ...

  5. redux 及 相关插件 项目实战

    目录结构 +-- app | +-- actions | +-- index.js | +-- components | +-- content.js | +-- footer.js | +-- se ...

  6. c#中的多态 c#中的委托

    C#中的多态性          相信大家都对面向对象的三个特征封装.继承.多态很熟悉,每个人都能说上一两句,但是大多数都仅仅是知道这些是什么,不知道CLR内部是如何实现的,所以本篇文章主要说说多态性 ...

  7. sql select(A.B)拼接

    需要做的工作:把DBtable里边的某两个字段,(当然可以更多)或者不同表,道理类似,用某个符号拼接起来. 比如(Table.A).(Tables.B) oracle里边可以这样写,sql没试: se ...

  8. CodeVS2492 上帝造题的七分钟2(树状数组+并查集)

    传送门 树状数组模板题.注意优化,假设某个数的值已经是1了的话.那么我们以后就不用对他进行操作了,这个能够用并查集实现. 这道题还有个坑的地方,给出查询区间端点的a,b,有可能a>b. #inc ...

  9. js中!~什么意思

    (function () { var names = []; return function (name) { addName(name); } function addName(name) { if ...

  10. STM32低功耗模式与烟雾报警器触发信号电路设计

    1.STM32的3种低功耗模式 STM32有3种低功耗模式,分别是睡眠模式.停机模式和待机模式. 2.STM32在不同模式下的电流消耗 a.工作模式  消耗电流在27mA至36mA之间. b.睡眠模式 ...