计算2000年01月01日起到指定日的天数_PHP
这是一个计算2000年01月01日起到指定日的天数的函数
(算头也算尾)日期格式为:YYYY-MM-DD
// 计算从2000年01月01日开始到某日的天数
function cal_start2end($end_day,$start_day)
{
$start_day=ereg_replace("-","",$start_day);
$end_day=ereg_replace("-","",$end_day);
if($end_day>=$start_day)
{ // 截止日期大于开始日期
if(substr($end_day,0,4)==substr($start_day,0,4))
{
if( is_int(substr($end_day,0,4)/4) )
$leap_day=29; //leap year
else
$leap_day=28;
// //同一年
if(substr($end_day,4,2)==substr($start_day,4,2))
{
// the same month
$endday_from_startday=$end_day-$start_day 1;
}
else
{
// not same month
switch (substr($end_day,4,2))
{
case "01":
$endday_from_newyear=substr($end_day,6,2) 1;
break;
case "02":
$endday_from_newyear=substr($end_day,6,2) 31;
break;
case "03":
$endday_from_newyear=substr($end_day,6,2) $leap_day 31;
break;
case "04":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2;
break;
case "05":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30;
break;
case "06":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30;
break;
case "07":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30*2;
break;
case "08":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30*2;
break;
case "09":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*2;
break;
case "10":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*3;
break;
case "11":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*4;
break;
case "12":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*5;
break;
}
$endday_from_startday=$endday_from_newyear;
}
return ($endday_from_startday);
}
else
{
// 不同年!
$differ_year=substr($end_day,0,4)-substr($start_day,0,4);
$how_int_4_floor=floor($differ_year/4) 1; // 向下取整
$how_int_4_ceil=ceil($differ_year/4) 1; // 向上取整
if($how_int_4_floor==$how_int_4_ceil)
$how_leap_year=$how_int_4_floor-1;
else
$how_leap_year=$how_int_4_floor;
$how_noleap_year=$differ_year-$how_leap_year;
$differ_year2day=$how_noleap_year*365 $how_leap_year*366;
if( is_int(substr($end_day,0,4)/4) )
$leap_day=29; //leap year
else
$leap_day=28;
if(substr($end_day,4,2)==substr($start_day,4,2))
{
// the same month
$endday_from_startday=$differ_year2day substr($end_day,4,2);
}
else
{
// not same month
switch (substr($end_day,4,2))
{
case "01":
$endday_from_newyear=substr($end_day,6,2) 1;
break;
case "02":
$endday_from_newyear=substr($end_day,6,2) 1 31;
break;
case "03":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31;
break;
case "04":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2;
break;
case "05":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30;
break;
case "06":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30;
break;
case "07":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*2 30*2;
break;
case "08":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*3 30*2;
break;
case "09":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*2;
break;
case "10":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*3;
break;
case "11":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*4;
break;
case "12":
$endday_from_newyear=substr($end_day,6,2) 1 $leap_day 31*5 30*5;
break;
} //End of switch
$endday_from_startday=$endday_from_newyear $differ_year2day;
} //End of not same month
return ($endday_from_startday);
} //End of year
} //End of $end_day>=$start_day
} //End of function
$start_day="2000-01-01";
$end_day="2011-01-01";
echo "您输入的是:".$end_day."
\n";
$endday_from_startday=cal_start2end($end_day,$start_day);
echo "该日距离$start_day 共 ".$endday_from_startday." 天";
?>
时间太少了,那位大虾可以修改为计算任意两日期之间的间隔最好!!!!!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

通用矩阵乘法(GeneralMatrixMultiplication,GEMM)是许多应用程序和算法中至关重要的一部分,也是评估计算机硬件性能的重要指标之一。通过深入研究和优化GEMM的实现,可以帮助我们更好地理解高性能计算以及软硬件系统之间的关系。在计算机科学中,对GEMM进行有效的优化可以提高计算速度并节省资源,这对于提高计算机系统的整体性能至关重要。深入了解GEMM的工作原理和优化方法,有助于我们更好地利用现代计算硬件的潜力,并为各种复杂计算任务提供更高效的解决方案。通过对GEMM性能的优

WORD是一个强大的文字处理器,我们可以利用word进行各种文字的编辑,在Excel表格当中,我们已经熟练掌握了加减乘数的运算方法,那么如果需要在Word表格里,计算数值的加减乘数,该如何操作呢,难道只能用计算器计算吗?答案当然是否定的,WORD也同样可以完成。今天小编就来教大家如何在Word文档的表格当中,运用公式计算加减乘除等基本运算,一起来学习一下吧。那么,今天就让小编具体演示一下,WORD文档怎么计算加减乘除?第一步:打开一个WORD,单击工具栏【插入】下的【表格】,在下拉菜单当中插入一

如何使用Python的count()函数计算列表中某个元素的数量,需要具体代码示例Python作为一种强大且易学的编程语言,提供了许多内置函数来处理不同的数据结构。其中之一就是count()函数,它可以用来计算列表中某个元素的数量。在本文中,我们将详细介绍如何使用count()函数,并提供具体的代码示例。count()函数是Python的内置函数,用于计算某

简介使用行列式计算三角形面积的Java程序是一个简洁高效的程序,可以根据给定三个顶点的坐标来计算三角形的面积。该程序对于学习或使用几何的任何人都非常有用,因为它演示了如何在Java中使用基本算术和代数计算,以及如何使用Scanner类读取用户输入。程序提示用户输入三角形三个点的坐标,然后将其读入并用于计算坐标矩阵的行列式。使用行列式的绝对值来确保面积始终为正,然后使用公式计算三角形的面积并显示给用户。该程序可以轻松修改以接受不同格式的输入或执行附加计算,使其成为几何计算的多功能工具。决定因素行列

给定两个字符串str_1和str_2。目标是使用递归过程计算字符串str1中子字符串str2的出现次数。递归函数是在其定义中调用自身的函数。如果str1是"Iknowthatyouknowthatiknow",str2是"know"出现次数为-3让我们通过示例来理解。例如输入str1="TPisTPareTPamTP",str2="TP";输出Countofoccurrencesofasubstringrecursi

在C#中,有一个Math类库,其中包含许多数学函数。其中包括计算幂次方的函数Math.Pow,它可以帮助我们计算指定数的幂。Math.Pow函数的用法非常简单,只需要指定底数和指数就可以了。其语法如下:Math.Pow(base,exponent);其中base表示底数,exponent表示指数。该函数返回double类型的结果,即幂次方的计算结果。下面让

我们将演示如何使用Java程序计算总分和百分比。总分是指所有可用分数的总和,而术语百分比是指计算分数除以总分并乘以所得的数字100。percentage_of_marks=(obtained_marks/total_marks)×100示例1这是一个Java程序,用于演示如何计算总分和百分比。//JavaProgramtodemonstratehowisTotalmarksandPercentagescalculatedimportjava.io.*;publicclassTotalMarks_

PHP日期处理技巧:如何使用PHP计算日期之间的月份差?日期处理在Web开发中是一个非常常见的需求,特别是在需要和时间相关的业务逻辑中。在PHP中,计算日期之间的月份差可以通过一些方法实现。本文将介绍如何使用PHP来计算两个日期之间的月份差,并提供具体的代码示例。方法一:使用DateTime类PHP的DateTime类提供了丰富的日期处理方法,包括计算日期之
