asp.net C中时间日期计算代码
【输出】每组数据输出一行,即日期差值
【样例输入】2011041220110422
【样例输出】11
很简单的一道题目,思路很简单,计算两个日期分别到1年1月1日间隔的天数,然后相减加一即可。计算到00010101的间隔天数包含了如下日期计算常见的一些内容。
闰年判断 表达式
根据格里历:平年365日,闰年366日;但四年之闰余,仅23时15分4秒,闰一日,未免过多,超过之44分56秒,积至二十五闰,为17时58分24秒,约合一日之3/4,故每满百年废一闰,至第400年又不废。
判断闰年的表达式如下(C语言版)
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5083')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5083>!(y@0)||(!(y%4)&&y0))
或
y%4?0:(y0?1:(y@0?0:1))
计算距公元1年1月1日天数
首先使用数组索引前几个月天数,并加上当月天数,如果是月份大于3且闰年(注意判断顺序,利用||的短路)则加上1天,然后加上之前年份的总天数,这里利用表达式r =--y*365 y/4-y/100 y/400; 来计算。
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy5248')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy5248>int R[]={0,31,59,90,120,151,181,212,243,273,304,334};
int calc(int y){
int m=y000/100;
int r=R[m-1] y0;
y/=10000;
r =(m>2&&(!(y@0)||(!(y%4)&&y0)))?1:0;
r =--y*365 y/4-y/100 y/400;
return r;
}
原题程序代码如下:
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy2603')">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy2603>#include<stdio.h>
int R[]={0,31,59,90,120,151,181,212,243,273,304,334};
int calc(int y){
int m=y000/100;
int r=R[m-1] y0;
y/=10000;
r =(m>2&&(!(y@0)||(!(y%4)&&y0)))?1:0;
return r --y*365 y/4-y/100 y/400;
}
int main(){
int x,y;
while(scanf("%d%d",&x,&y)!=EOF)printf("%dn",calc(y)-calc(x) 1);
}
您可能感兴趣的文章:
PHP中计算时间差的几种方法
asp.net C中时间日期计算代码
JS网页时间计算代码 js日期天数计算方法
php日期加减法运算小例子
php函数计算两个日期相差天数
datepart函数
asp中的一些日期时间函数
mysql时间查询操作实例
php 计算两个日期相差天数的实现代码
asp.net DateTime 周一和周日的日期获取代码