开发中闰年的计算

在开发的过程中经常会遇到时间的计算:比如闰年的计算,特别是在开发万年历的时候。

那么闰年具体是怎么算的呢?

1.地球公转一圈,大概是365.25天
所以公历的平年是365天,闰年就是366天,4年累计为1天

这个就是2月份平年28天,闰年29天的来由,小学老师也是这样教的

2.如果你这样计算了,那么对不起,时间肯定对不上,为什么?

我说的地球公转一圈大概是365.25天,而实际是:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)《百度百科》

看到了吧,一年不是准确的365.25天,那么这样由该怎么办?

3.计算的方法就是常说的:四年一闰,百年不闰,四百年再闰。 例如,2000年是闰年,2100年是平年《百度百科》

4,以javascript为例,计算判断某年为闰年的函数

1 function isLeapYear(year) {
2         return (year % 4 == 0) && (year % 100 != 0 || year % 400 == 0);
3     };

5.看到了吧,这样的常识我们被老师骗了N多年而不自知

时间: 2024-10-05 23:50:24

开发中闰年的计算的相关文章

iOS 开发中农历与公历的转换,星座计算。

上一个项目开发中遇到的需求,用户选择出生日期后自动计算出对应的农历.用到这种工具类,必定百度谷歌.结果翻了个遍没看到靠谱的,基本都是用的iOS自带的农历算法然后抄个遍.但是这个算法有点小误差,而且农历这种博大精深的东西不像公历是个死的,还要推算出来.终于终于终于在某个角落找到个靠谱的可以使用,所以分享出来,不过现在我也找不出来源了,但还是感谢原作者. // LunarSolarConverter.h #import <Foundation/Foundation.h> @interface Lu

Vs2013在Linux开发中的应用(26):表达式计算

快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 当VS调试时将鼠标移到一个变量上面的时候,VS将显示这个变量的值,实际上这个时候VS进行了表达式的计算,我们所需要做的,就是把这个过程转换为gdb的命令: Operation Description -enable-pretty-printing enable Python-based pretty-printing -var-create create a variable object -v

结构化方法和面向对象方法在软件开发中的对比

学习过C语言和JAVA的同学们一定清楚,这两种语言代表了两种不同的开发方式,即以C语言为代表的结构化开发方法和JAVA代表的面向对象的开发方法.由于二者在程序结构上有着很大的区别,因此,在软件开发领域中,根据自己的需求来选择合理的开发方式就显得尤为重要. 开发软件通常有三个层次: 1.满足用户需求 2.可维护性,即可修改性,让软件能随着用户需求的变更而容易改变 3.可重用性(在其它软件中,能尽量重用该软件的模块) 通过对软件的这三个主要层次的分析,我们就能在实际开发中确定我们的选择. 结构化方法

Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周

iOS开发中UIPopoverController的使用详解

这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下 一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIViewController 它只占用部分屏幕空间来呈现信息,而且显示在屏幕的最前面 2.使用步骤 要想显示一个UIPopoverController,需要经过下列步骤

移动web开发中屏幕适配问题

1.首先屏幕的尺寸就是屏幕对角线的长度 尺寸是固定的 2.开发中遇到的单位 相对单位(即相对于屏幕):px em pt 绝对单位(固定的大小,与设备屏幕无关):in cm 3.像素密度 像素密度指的是1英寸里面的像素的数量,比如1英寸里面是10px,通常有两种163(3gs) 330(4s)通常超过320的像素密度就是高清屏,计算方式:屏幕的分辨率高的平方+屏幕分辨率宽的平方 ,然后再开根号,再除以屏幕的英寸. 4.设备独立像素 设备独立像素表示真实像素和分辨率像素的一个比例,比如3gs手机高度

一探前端开发中的JS调试技巧

前言:调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今天,如何在前端开发中降低开发成本,提升工作效率,掌握前端开发调试技巧尤为重要. 本文将一一讲解各种前端JS调试技巧,也许你已经熟练掌握,那让我们一起来温习,也许有你没见过的方法,不妨一起来学习,也许你尚不知如何调试,赶紧趁此机会填补空白. 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前

前端开发中经常使用到的20个正则表达式

1 . 校验密码强度 密码的强度必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间. ^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$ 2. 校验中文 字符串仅能是中文. ^[\\u4e00-\\u9fa5]{0,}$ 3. 由数字.26个英文字母或下划线组成的字符串 ^\\w+$ 4. 校验E-Mail 地址 同密码一样,下面是E-mail地址合规性的正则检查语句. [\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$

0. Java开发中的23种设计模式详解(转)

设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样.项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周