关于“日期”的考法(闰年、两个日期间隔多少天)(金山笔试)
2014-06-04 17:52
375 查看
闰年:年份是整百数时,必须是400的倍数才是闰年;不是400的倍数的年份,即使是4的倍数也是平年。即四年一闰,百年不闰,四百年再闰。 例如,2000年是闰年,1900年则是平年。(摘自“百度百科”)
题目1: 计算两个日期之间所间隔天数(转自:http://blog.csdn.net/vonger/article/details/5917764)
以公元1年1月1日为起始日期,计算任意一个日期到它的日数是容易计算的,这样,我只要需要计算出两个需要计算的日期到公元1的所差天数就可以了。
Java语言:
题目1: 计算两个日期之间所间隔天数(转自:http://blog.csdn.net/vonger/article/details/5917764)
以公元1年1月1日为起始日期,计算任意一个日期到它的日数是容易计算的,这样,我只要需要计算出两个需要计算的日期到公元1的所差天数就可以了。
Java语言:
//两个日期间的天数,测试通过。BY myself public class DaysBetween{ public static void main(String args[]){ System.out.println(daysBetween(2000,2,10,2012,2,10)); } public static int daysBetween(int y1,int m1,int d1,int y2,int m2,int d2){ int days1=daysFromBeginning(y1,m1,d1); int days2=daysFromBeginning(y2,m2,d2); if(y1>y2){ return days1-days2; }else if(y1<y2){ return days2-days1; }else if(m1>m2){ return days1-days2; }else if(m1<m2){ return days2-days1; }else if(d1>d2){ return days1-days2; }else if(d1<d2){ return days2-days1; }else{ return 0; } } public static int daysFromBeginning(int y, int m, int d){//以1年1月1日为Beginning int daysEachMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int daysMonth[]=new int[13]; daysMonth[0]=0; for(int i=1; i<13; i++){ daysMonth[i]=daysMonth[i-1]+daysEachMonth[i]; } int days_temp = (y-1)*365; int days_leap = (y-1)/400+((y-1)/4-(y-1)/100); int days_thisYear= daysMonth[m-1]+d+(isLeapYear(y)&&m>2?1:0); return days_temp+days_leap+days_thisYear; } public static boolean isLeapYear(int year){ return year%400==0||(year%4==0&&year%100!=0) ; } }
相关文章推荐
- 关于两个日期间隔计算及日期其他相关
- 如何用java计算两个日期之间间隔多少天
- 关于两个日期间隔工作日的oracle sql实现
- SWIFT中计算两个日期间隔多少小时
- 设计一个程序输入两个日期计算相隔多少天,或计算一个日期加上间隔后的日期。
- Java中计算两个日期间隔多少天
- 得到两个日期之间的间隔天数
- C#关于日期月天数和一年有多少周及某年某周时间段的计算
- 计算两个日期的时间间隔
- 计算两个日期的时间间隔
- 两个日期之间的时间间隔
- 两个日期之间的日期间隔,日期是代小数点的,比如 1.5天
- 计算两个日期之间的间隔天数、周末天数、以及为当年的哪一周
- DateDiff 函数-两个指定日期间的时间间隔数目
- 用JS计算两个日期之间有多少个休息日
- javascript计算两个日期的间隔天数
- C#返回两个日期的间隔值
- 计算两个日期之间有多少个工作日的方法(同理也可以计算有多少个双休日)
- JavaScript计算两个日期间隔
- 计算两个日期的时间间隔